Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

1

09.04.2013, 16:52

Eclipse erkennt default Klasse nicht

Hallo zusammen. Ich habe folgendes Problem. Ich habe ein kleines Programm geschrieben und muss in einer der Klassen eine Instanz einer anderen Klasse erstellen. Die Klasse Render.java ist in einem package Namens graphics. Innerhalb dieser Klasse möchte ich nun eine Instanz von Display.java erstellen, welche in keinem Package steht. Also schreibe ich einfach import Display;
Allerdings erkennt Eclipse diese Klasse nicht? Wenn ich nun in den Quickfixes auf 'create Display.java' gehe, wird mir aber gesagt, dass diese Klasse bereits existiert?! Warum ist das so? Sobald ich Display.java in das graphics package schiebe funktioniert es. Aber es soll erstmal außerhalb bleiben!

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

2

09.04.2013, 16:54

Wie wäre es wenn du einfach ein package für Display erstellst? Ich programmier nur selten in Java, aber ich denke das ist auch so üblich (wie namespaces in C++).

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

3

09.04.2013, 17:15

Eclipse dürfte dich eigentlich bereits darauf hingewiesen haben, dass Klassen außerhalb von Packages nicht verwendet werden sollten! Einem kurzen Test meinerseits zufolge scheint es nicht möglich zu sein, auf Klassen ohne Package zuzugreifen.
Tu dir selbst einen Gefallen und überlege dir einfach eine Package-Struktur...
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

4

11.04.2013, 02:59

Der Java-Standard ist zu diesem Thema auch recht deutlich:

Zitat von »Java 7 - Language Specifications«


A type in an unnamed package (§7.4.2) has no canonical name, so the requirement for a
canonical name in every kind of import declaration implies that (a) types in an unnamed
package cannot be imported, and (b) static members of types in an unnamed package
cannot be imported. As such, §7.5.1, §7.5.2, §7.5.3, and §7.5.4 all require a compile-time
error on any attempt to import a type (or static member thereof) in an unnamed package.


Du solltest also auf jeden Fall packages vergeben. Bei Projekten, die aus mehreren Klassen(und evtl. sogar verschiedenen Packages bestehen), sollte man das (aus genau solchen Gründen) sowieso machen.

Werbeanzeige