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<T> {
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