Einfache Verwendung innerhalb der Klasse:
public class OuterClass { public OuterClass() { } public abstract class InnerAbstractClass { public void a() { } public abstract void absMethod(); } public void test() { new OuterClass().new InnerAbstractClass() { public void absMethod() { } }; } public static void main(String[] args) { new OuterClass().new InnerAbstractClass() { public void absMethod() { } }; } }
Fügen Sie dem obigen Beispiel Generika hinzu
public class OuterClass { public OuterClass() { } public abstract class InnerAbstractClass { public void a() { } public abstract void absMethod(); } public void test() { new OuterClass().new InnerAbstractClass() { public void absMethod() { } }; } public static void main(String[] args) { new OuterClass().new InnerAbstractClass() { public void absMethod() { } }; } }
Rufen Sie die innere Klasse in der Testmethode auf und kompilieren Sie sie korrekt. Melden Sie einen Fehler in der Hauptmethode,cannot be referenced from a static context
.
Es wird kein Fehler gemeldet, wenn eine interne Klasse in einer anderen neu erstellten Klasse aufgerufen wird
public class OuterClassTest { public static void main(String[] args) { new OuterClass().new InnerAbstractClass() { public void absMethod() { } }; } }
Warum? ? ?
呵呵,点没帮助的那位,自己复制代码运行一下,编译没问题!没有问题!
不会用ide就老老实实自己javac