15 votes

Comment vérifier si une chaîne donnée fait partie d'un Enum donné en Java ?

J'ai deux enums différents et je veux être capable d'indiquer si une valeur donnée de donnée fait partie d'une collection d'enum. Voici mon code :

public class Check {
    public enum Filter{SIZE, DATE, NAME};
    public enum Action{COPY, DELETE, REMOVE};

    public boolean isInEnum(String value, Enum e){
        // check if string value is a part of a given enum
        return false;
    }

    public void main(){
        String filter = "SIZE";
        String action = "DELETE";
                // check the strings
        isInEnum(filter, Filter);
        isInEnum(action, Action);
    }
}

eclipse dit que dans les deux dernières lignes "Filter can't be resolved to a variable" mais à part cela, il semble que le paramètre Enum dans la fonction "isInEnum" soit erroné.

Quelque chose ne va pas du tout ici, quelqu'un peut-il m'aider ?

0 votes

Vous avez raison :) l'enum est juste une classe normale, vous ne pouvez pas mentionner son nom comme ça. Les membres d'enum sont des instances de leur enum, pas l'enum dans son ensemble.

0voto

Atul Khanduri Points 1454

Cela peut également se faire de la manière suivante :

public boolean isInEnum(String value, Enum e){
    return Enums.getIfPresent(e.class, value).isPresent();
}

Pour plus de détails, voir aquí .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X