【问题标题】:Is it possible to deprecate some of the values of a Java enum and if so, how?是否可以弃用 Java 枚举的某些值,如果可以,如何弃用?
【发布时间】:2011-09-12 18:29:27
【问题描述】:

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

【问题讨论】:

  • 我认为是时候在这里接受答案了,我真的怀疑这里会出现很多其他问题 ;-)

标签: java enums deprecated


【解决方案1】:

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

enum Status {
    OK,
    ERROR,

    @Deprecated
    PROBLEM
}

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

enum Status {
    OK,
    ERROR,

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

【讨论】:

  • 我一直(嗯,偶尔)想知道为什么 @Deprecated 注释类型不允许 value 用于此目的。
  • “不要使用这个值”是一个无用的评论。除了已弃用的注释之外,它什么也没说。弃用注释应说明替换的值。
  • @JB Nizet 这当然只是为了演示原理。我改了。
  • 是的,我从来没有过多地使用注解。我更熟悉通过 cmets 弃用。 @Deprecated 解决方案正是我想要的,谢谢。
【解决方案2】:
public enum Characters {
    STAN,
    KYLE,
    CARTMAN,
    @Deprecated KENNY
}

【讨论】:

  • 天啊!他们不赞成肯尼!
【解决方案3】:

刚试了一下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;
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多