我有一个与@SuppressWarnings("unused")注释有关的基本问题.基本上,我想在我的类的声明部分中抑制代码块上未使用的警告.我宁愿不要在整个班级上禁止使用未使用的警告.
目前,我这样做:
public class MyClass {
//Constants
private final String ACCEPT = "Yes";
@SuppressWarnings("unused")
private final String DENY = "No"; //Not currently used
private final String TENTATIVE = "Maybe";
@SuppressWarnings("unused")
private final String POSTPONE = "Later"; //Not currently used
//Variables
private int counter;
....
Run Code Online (Sandbox Code Playgroud)
我发现上面的代码有点乱,随机抛出的注释就像那样.我想做的是:
//Constants
@SuppressWarnings("unused")
{
private final String ACCEPT = "Yes";
private final String DENY = "No"; //Not currently used
private final String TENTATIVE = "Maybe";
private final String POSTPONE = "Later"; //Not currently used
}
//Variables
private int counter;
....
Run Code Online (Sandbox Code Playgroud)
当然,这在Java中是非法的,因为块不能简单地这样做.这不是什么大不了的事,但我很好奇,如果我错过了一个明显而优雅的解决方案.
如果你想要保留所有那些未使用的常量,那么快速而肮脏的技巧就是;
public class MyClass {
//Variables
private int counter;
@SuppressWarnings("unused")
private static final class UnusedConstants{
private final String ACCEPT = "Yes";
private final String DENY = "No";
private final String TENTATIVE = "Maybe";
private final String POSTPONE = "Later";
}
}
Run Code Online (Sandbox Code Playgroud)
而且我会让它们变得静止,但是你的电话.
编辑:或者,我认为更好:
public class MyClass {
private enum Answer {
ACCEPT ("Yes"),
DENY ("No"),
TENTATIVE("Maybe"),
POSTPONE("Later");
private final String answer;
private Answer(String answer) {
this.answer = answer;
}
public String toString() {
return answer;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这样,只要您使用至少一个值,就不会获得未使用的警告.
| 归档时间: |
|
| 查看次数: |
5826 次 |
| 最近记录: |