【问题标题】:Should I make a constants class for my annotations?我应该为我的注释创建一个常量类吗?
【发布时间】:2009-03-10 17:55:11
【问题描述】:

哪个更好?

  1. @SuppressWarnings("unchecked")
  2. @SuppressWarnings(AnnotationConstants.UNCHECKED)

其中AnnotationConstants 是一个典型的常量类...

public final class AnnotationConstants {
    private AnnotationConstants() { }

    public static final String UNCHECKED = "unchecked";

    ...
}

我知道有很多支持和反对常量类的一般论据——而这正是我感兴趣的。我想知道常量类是否专门 对于注释来说是个好主意或坏主意。

【问题讨论】:

    标签: java annotations constants


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      请我说两句。

      在 Spring 中,您可以说诸如 @Scope(Scopes.SESSION) 或 @Scope(Scopes.REQUEST) 之类的内容,它会将特定类型的行为附加到注解中,所以我会说 总是使用常量类,这有利于可追溯性。

      如果您只是抑制警告,那么您几乎不可能真正追踪到这一点,因此只需使用字面量即可。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 我喜欢使用枚举的想法。 +1。
        【解决方案4】:

        对于@SuppressWarning 之类的,我不这么认为。我更喜欢直接编写常量,并尽可能让编译器检查它们。 Eclipse 在这方面做得很好。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多