48 votes

Est-il possible de déprécier certaines des valeurs d'un enum Java et si oui, comment ?

Je veux déprécier certains, mais pas tous les possibles. énumération valeurs.

0 votes

0 votes

Je pense qu'il est temps d'accepter une réponse ici, je doute vraiment qu'il y ait beaucoup d'autres réponses ici ;-)

70voto

Jesper Points 65733

Oui, mettez une annotation @Deprecated sur eux. Par exemple :

enum Status {
    OK,
    ERROR,

    @Deprecated
    PROBLEM
}

Vous pouvez également ajouter un JavaDoc @deprecated pour le documenter :

enum Status {
    OK,
    ERROR,

    /**
     * @deprecated Use ERROR instead.
     */
    @Deprecated
    PROBLEM
}

5 votes

Je me suis toujours (enfin, occasionnellement) demandé pourquoi les @Deprecated n'autorise pas l'utilisation d'un type d'annotation value à cette fin.

1 votes

"N'utilisez pas cette valeur" est un commentaire inutile. Il ne dit rien d'autre que l'annotation dépréciée. Un commentaire de dépréciation devrait dire par quoi la valeur est remplacée.

0 votes

JB Nizet, c'était bien sûr seulement pour démontrer le principe. Je l'ai modifié.

61voto

Barend Points 8232
public enum Characters {
    STAN,
    KYLE,
    CARTMAN,
    @Deprecated KENNY
}

62 votes

OH MON DIEU ! ILS ONT DÉPRÉCIÉ KENNY !

5voto

home Points 8667

Je viens d'essayer eclipse, ça marche :

public class Test {

    public static void main(String[] arg) {

        System.err.println(EnumTest.A);
        System.err.println(EnumTest.B);

    }

    public static enum EnumTest {
        A, @Deprecated B, C, D, E;
    }

}

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