Si Enum implémente comparable, alors pourquoi ne peut pas comparer avec <ou>?
public class Dream
{
public static void main(String... args)
{
System.out.println(PinSize.BIG == PinSize.BIGGER); //false
System.out.println(PinSize.BIG == PinSize.BIG); //true
System.out.println(PinSize.BIG.equals(PinSize.BIGGER));//false
System.out.println(PinSize.BIG > PinSize.BIGGERER);// compilation error
//can't be compared
System.out.println(PinSize.BIG.toString().equals(PinSize.BIGGER));// #4
PinSize b = PinSize.BIG ;
System.out.println( b instanceof Comparable);// true
}
}
enum PinSize { BIG, BIGGER, BIGGERER };
Mise en œuvre Comparable
pas Moyenne que vous puissiez utiliser <
Ou >
. Vous pouvez seulement Utilisez ceux avec des valeurs numériques.
Mise en œuvre Comparable
signifie qu'il y a une méthode compareTo()
méthode. Essaye ça:
System.out.println(PinSize.BIG.compareTo(PinSize.BIGGER));
Le compareTo()
La méthode retournera un int
inférieur à, égal ou supérieur à 0, selon la valeur "plus grande". Dans le cas des valeurs enum
, la "taille" dépend de l'ordre des définitions de valeur Enum.