Java Enum Recursive Referenz-sollte funktionieren?Java

Java-Forum
Anonymous
 Java Enum Recursive Referenz-sollte funktionieren?

Post by Anonymous »

Ich habe ein Spielzeugbeispiel erstellt, in der Hoffnung, einen Fehler zu replizieren, aber es funktioniert. Aber ich kann keinen Fehler im ursprünglichen, längeren Code finden. Ich vermute also, dass dieser Ansatz funktioniert oder inkonsistent scheitern kann. Und so ist die Frage: Ist dieser Ansatz nicht lebensfähig und nicht empfohlen? Art einer Rekursion in den Konstruktoren. Aber in meinem Hauptcode kann ich nur Null als Wert des analogen Feldes erhalten, obwohl ich versucht habe, an mehreren Stellen anzurufen und zu inspizieren. Vielleicht vermisse ich nur einen Fehler. Aber dann sollte ich vielleicht nicht versuchen, dies zu tun?

Code: Select all

public enum Animal {
APE,
HUMAN;

// nested object as field to contain properties
public final Properties props;

// private enum constructor which instantiates and populates the properties object
private Animal() {
props = new Animal.Properties(this);
}

public class Properties {
public final int height;
public final Animal ancestor;

private Properties(Animal animal) {
switch (animal) {
case APE -> {
this.height = 48;
this.ancestor = null;
}
case HUMAN -> {
this.height = 60;
this.ancestor = APE;  // recursive reference to another enum value
}
default -> {
this.height = 0;
this.ancestor = null;
}
}
}
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post