我应该为我的注释创建一个常量类吗?

时间:2009-03-10 17:55:12

标签: java annotations constants

哪个更好?

  1. @SuppressWarnings("unchecked")
  2. @SuppressWarnings(AnnotationConstants.UNCHECKED)
  3. AnnotationConstants是典型的常数类......

    public final class AnnotationConstants {
        private AnnotationConstants() { }
    
        public static final String UNCHECKED = "unchecked";
    
        ...
    }
    

    我知道有很多一般论证支持和反对常量类 - 而这正是我感兴趣的。我想知道一个常量类是否具体注释是一个好主意或坏主意。

4 个答案:

答案 0 :(得分:6)

对于这个特定的示例,我坚持使用文字。毕竟,你试图压制警告 - 如果使用错误的文字,警告将不会被抑制,这会引起你对问题的注意。

答案 1 :(得分:3)

我想说一下这两点。

在Spring中,你可以说像@Scope(Scopes.SESSION)或@Scope(Scopes.REQUEST)这样的东西,它会在注释中附加一种特定的行为,所以我会说总是使用常量类,这有利于可追溯性。

如果你只是在抨击警告,那么你很可能想要真正追踪这一点,所以只需要使用文字。

答案 2 :(得分:2)

我同意Holsam for SuppressWarnings - 使用字符串

如果您正在编写自己的注释,我建议尽可能使用enum枚举可以表示为一组常量的内容

答案 3 :(得分:0)

对于@SuppressWarning等喜欢,我不这么认为。我更喜欢直接编写常量,并让编译器检查它们是否可能。 Eclipse做得很好。