是否可以弃用java枚举的某些值,如果是,如何?

Ste*_*hen 38 java enums deprecated

我想弃用一些但不是所有可能的枚举值.

Jes*_*per 60

是的,在它们上面放一个@Deprecated注释.例如:

enum Status {
    OK,
    ERROR,

    @Deprecated
    PROBLEM
}
Run Code Online (Sandbox Code Playgroud)

您还可以添加JavaDoc @deprecated标记来记录它:

enum Status {
    OK,
    ERROR,

    /**
     * @deprecated Use ERROR instead.
     */
    @Deprecated
    PROBLEM
}
Run Code Online (Sandbox Code Playgroud)

  • 我总是(好吧,偶尔)想知道为什么`@ Deprecated`注释类型不允许为此目的使用`value`. (4认同)

Bar*_*end 54

public enum Characters {
    STAN,
    KYLE,
    CARTMAN,
    @Deprecated KENNY
}
Run Code Online (Sandbox Code Playgroud)

  • 哦,我的上帝!他们已经没法了! (51认同)

hom*_*ome 5

刚刚试过eclipse,它的工作原理:

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;
    }

}
Run Code Online (Sandbox Code Playgroud)