Java 类变量上的Checkstyle
Check样式表示,对于私有类变量,“必须声明为final”Java 类变量上的Checkstyle,java,eclipse,performance,checkstyle,Java,Eclipse,Performance,Checkstyle,Check样式表示,对于私有类变量,“必须声明为final” 在上面的例子中,它调用声明x为final,但是声明x为final会在构造函数中初始化它时出错。有什么问题吗?通过setter访问private和static字段进行修改是一种不好的方式。您必须执行以下操作之一: 1) 将字段x设为final并删除该字段的set方法 或者 2) 使字段x非静态(删除static关键字),则无需将其设置为final 但是,将x声明为final会在构造函数中初始化它时出错 要初始化静态字段,请使用 还有,为
在上面的例子中,它调用声明x为final,但是声明x为final会在构造函数中初始化它时出错。有什么问题吗?通过setter访问
private
和static
字段进行修改是一种不好的方式。您必须执行以下操作之一:
1) 将字段x
设为final
并删除该字段的set
方法
或者
2) 使字段x
非静态(删除static
关键字),则无需将其设置为final
但是,将x声明为final会在构造函数中初始化它时出错
要初始化静态字段,请使用
还有,为什么它应该是final
。。。原因是
私有静态
,无法从外部访问最终的
,则无需将其设置为静态的
static
要么使用final private static
现在,代码的另一部分:
public void set(int x) {
this.x = x;
}
问题:
静态
字段不应使用此
访问不能更改静态最终字段的值 如果您真的需要x是静态的,那么将您的方法更改为
public static void setX(int newX){
[...]
请记住,在静态方法中不能使用“this”
这应该可以解决您的问题。引发警告的检查的名称是什么?解决方案会更有用…这只是4行代码…@obourgain:必须最终声明字段显示完整代码。为什么在实例方法中设置静态变量???
public static void setX(int newX){
[...]