Je n'arrive pas à accéder aux membres d'instance de la classe environnante depuis une enum, comme je pourrais le faire depuis une classe interne. Est-ce que cela signifie que les enums sont statiques? Existe-t-il un accès à la portée de l'instance de la classe environnante ou dois-je passer l'instance à la méthode enum où j'en ai besoin?
public class Universe {
public final int theAnswer;
public enum Planet {
// ...
EARTH(...);
// ...
// ... constructor etc.
public int deepThought() {
// -> "No enclosing instance of type 'Universe' is accessible in this scope"
return Universe.this.theAnswer;
}
}
public Universe(int locallyUniversalAnswer) {
this.theAnswer = locallyUniversalAnswer;
}
}