【发布时间】:2013-06-21 14:02:16
【问题描述】:
我有以下用 java 编写的自定义异常:
import java.util.List;
public class PolicyException extends RuntimeException {
private static final long serialVersionUID = -1760901980049241500L;
private PolicyErrorCode code;
private List<String> variables;
public PolicyException(final PolicyErrorCode code, final List<String> variables) {
this.code = code;
this.variables = variables;
}
public PolicyErrorCode getCode() {
return code;
}
public void setCode(final PolicyErrorCode code) {
this.code = code;
}
public List<String> getVariables() {
return variables;
}
public void setVariables(final List<String> variables) {
this.variables = variables;
}
}
我收到以下检查样式错误:
“代码”字段必须声明为 final。
“变量”字段必须声明为 final。
我相信抛出的 checkstyle 错误是FinalLocalVariableCheck。根据api:
确保永远不会改变其值的局部变量必须声明为 final。
但是,显然所涉及的变量有 getter 和 setter,因此不能将它们声明为 final。
这些错误不会发生在我的所有类中,只是自定义异常,由于扩展异常而可序列化。
我在这里遗漏了什么吗?或者这是一个检查样式错误?
我相信这个人也有类似的problem,尽管在他的帖子中使用静态变量似乎有点混乱。
【问题讨论】:
-
如果您使用的是 Eclipse,您可以告诉它“在违规消息中包含规则名称”(Window --> Preferences --> Checkstyle)。其他 IDE 应该有类似的选项。这可以确定是哪个规则触发了警告。
标签: java error-handling checkstyle