【问题标题】:Should I make a constants class for my annotations?我应该为我的注释创建一个常量类吗?
【发布时间】:2009-03-10 17:55:11
【问题描述】:
哪个更好?
@SuppressWarnings("unchecked")
@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 - 使用字符串
如果您正在编写自己的注释,我建议尽可能使用枚举来表示可以表示为一组常量的事物
【解决方案4】:
对于@SuppressWarning 之类的,我不这么认为。我更喜欢直接编写常量,并尽可能让编译器检查它们。 Eclipse 在这方面做得很好。