Ich habe eine Klasse A
mit einer statischen inneren Klasse im Innern B
genannt:Kann statische statische Klasse nicht 'importieren'?
B
import static A.B.*;
class A {
static class B {
static int x;
static int y;
}
public static void main(String[] args) {
System.out.println(x);
}
}
Ich mag statisches Import alles, aber es wird nicht funktionieren:
$ javac A.java
A.java:1: package A does not exist
import static A.B.*;
^
A.java:9: cannot find symbol
symbol : variable x
location: class A
System.out.println(x);
^
2 errors
Warum?
"Dies wird nicht funktionieren, wenn A im Standardpaket ist." Was. Warum? – Dog
Von JLS scheint es, dass die Klasse TypeName vollständig qualifiziert sein muss. Davon ausgehend verlangt der Compiler, dass die Konvention eines Paketnamens vorliegt, wahrscheinlich um Zweideutigkeiten bei der Klassenbenutzung zu vermeiden – Reimeus