Java Language Comparer et contient les valeurs Enum


Exemple

Enums ne contient que des constantes et peut être comparé directement avec == . Donc, seule la vérification de référence est nécessaire, pas besoin d'utiliser la méthode .equals . De plus, si les .equals utilisées de manière incorrecte, peuvent générer l' NullPointerException alors que ce n'est pas le cas avec la vérification == .

enum Day {
    GOOD, AVERAGE, WORST;
}

public class Test {

    public static void main(String[] args) {
        Day day = null;

        if (day.equals(Day.GOOD)) {//NullPointerException!
            System.out.println("Good Day!");
        }

        if (day == Day.GOOD) {//Always use == to compare enum
            System.out.println("Good Day!");
        }

    }
}

Pour grouper, compléter, EnumSet valeurs enum, nous avons la classe EnumSet qui contient différentes méthodes.

  • EnumSet#range : Pour obtenir un sous-ensemble d'énum par plage définie par deux points de terminaison

  • EnumSet#of : Ensemble de EnumSet#of spécifiques sans aucune plage. Plusieurs surcharge of méthodes sont là.

  • EnumSet#complementOf : ensemble d'énum complément des valeurs enum fournies dans le paramètre method

    enum Page {
       A1, A2, A3, A4, A5, A6, A7, A8, A9, A10
    }
    
    public class Test {
    
      public static void main(String[] args) {
          EnumSet<Page> range = EnumSet.range(Page.A1, Page.A5);
    
          if (range.contains(Page.A4)) {
              System.out.println("Range contains A4");
          }
    
          EnumSet<Page> of = EnumSet.of(Page.A1, Page.A5, Page.A3);
    
          if (of.contains(Page.A1)) {
              System.out.println("Of contains A1");
          }
      }
    }