Utilisation simple de la classe interne :
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() {
}
};
}
}
Ajoutez des génériques à l'exemple ci-dessus
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() {
}
};
}
}
Appelez la classe interne dans la méthode de test et compilez correctement. Signalez une erreur dans la méthode principale, cannot be referenced from a static context
.
Aucune erreur ne sera signalée si une classe interne est appelée dans une autre classe nouvellement créée
public class OuterClassTest {
public static void main(String[] args) {
new OuterClass().new InnerAbstractClass() {
public void absMethod() {
}
};
}
}
Pourquoi ? ? ?
Haha, cliquez sur la personne inutile, copiez le code et exécutez-le vous-même, il se compilera sans aucun problème ! Aucun problème!
Si vous ne savez pas comment utiliser l'IDE, utilisez simplement javac