un commentaire dans le openjdk 9dev/jdk/src/java.desktop/share/classes/javax/print/attribute/EnumSyntax.java
:
Sous le capot, une valeur d'énumération est juste un nombre entier, un nombre entier différent pour chaque valeur d'énumération au sein d'une classe d'énumération.
Dans votre exemple,
enum Rooms{BH310, BH311, BH312F}
équivaudrait à:
Integer BH310=0;
Integer BH311=1;
Integer BH312F=2;
En effet, chaque valeur ENUM est représentée par un entier. Si vous avez modifié l'ordre des valeurs enum, les opérations compareTo retourneront différemment. Dans la représentation ci-dessous nous obtenons 1
imprimé à l'écran:
public enum Rooms {
BH311, BH310, BH312F;
}
public static void main(String[] args) {
System.out.println(Rooms.BH310.compareTo(Rooms.BH311));
}
Cependant, dans le code ci-dessous nous obtenons -1
imprimé à l'écran.
public enum Rooms {
BH310, BH311, BH312F;
}
public static void main(String[] args) {
System.out.println(Rooms.BH310.compareTo(Rooms.BH311));
}
En termes simples, quand 0.compareTo(1)
est effectuée, nous obtenons -1
en conséquence et quand 1.compareTo(0)
est effectuée, nous obtenons 1
en conséquence.
Veuillez essayer de préciser ce que vous voulez dire. –
"n'est-ce pas vrai parce que nous supposons que c'est vrai" est cette philosophie? –
@ScaryWombat Je veux dire que java ne le définit pas automatiquement quand vous ne l'appelez pas? –