Bonjour à tous,
J'essaye d'initialiser une liste d'instances de classes nested de la manière suivante :
L'objectif est de pouvoir utiliser ça de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public abstract class OuterClass { private static List<OuterClass> classes; static { classes = new ArrayList<OuterClass>(); classes.add(new InnerClass1()); classes.add(new InnerClass2()); } public static List<OuterClass> getClasses() { return classes; } public abstract int getValue(); public class InnerClass1 extends OuterClass{ public int getValue() { return 0; } } public class InnerClass2 extends OuterClass { public int getValue() { return 1; } } }
Le problème est que le compilateur me retourne l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for (OuterClass oc : OuterClass.getClasses()) { System.out.println(oc.getValue()); }
No enclosing instance of type InnerClass is accessible. Must qualify the allocation with an enclosing instance of type InnerClass (e.g. x.new A() where x is an instance of InnerClass).
Pourquoi pas mais comme la classe OuterClass est abstraite comment faire ?
Merci pour vos réponses.
Partager