我试图遵循 NetBeans 命名约定,但它无法编译?
I am trying to follow NetBeans naming conventions, but it won't compile?
具有 int 值的 setter 说 int 无法取消引用,而 string 值找不到方法。可能我看不太懂,不过我觉得挺好看的
请指教,谢谢!
private void setMachineID(int machineID) {
machineID.set(machineID);
}
public int getMachineID(){
return machineID.get();
}
public IntegerProperty machineIDProperty(){
return machineID;
}
}
您对字段和方法参数使用了相同的标识符。
如果在代码的一部分中有超过 1 个具有相同标识符的变量可见,java 将使用对这部分代码声明的变量 "closer"。
在这种情况下,方法参数的范围是方法,它 "closer" 到方法体而不是字段。因此,您必须明确告诉 java 您要使用该字段,而不是方法参数。
您需要像这样添加更改设置器:
之前
private void setMachineID(int machineID) {
machineID.set(machineID);
// ^^^^^^^^^ references method parameter
// ^^^^^^^^^ references method parameter
}
之后
private void setMachineID(int machineID) {
this.machineID.set(machineID);
// ^^^^^^^^^^^^^^ References field
// ^^^^^^^^^ references method parameter
}
具有 int 值的 setter 说 int 无法取消引用,而 string 值找不到方法。可能我看不太懂,不过我觉得挺好看的
请指教,谢谢!
private void setMachineID(int machineID) {
machineID.set(machineID);
}
public int getMachineID(){
return machineID.get();
}
public IntegerProperty machineIDProperty(){
return machineID;
}
}
您对字段和方法参数使用了相同的标识符。
如果在代码的一部分中有超过 1 个具有相同标识符的变量可见,java 将使用对这部分代码声明的变量 "closer"。
在这种情况下,方法参数的范围是方法,它 "closer" 到方法体而不是字段。因此,您必须明确告诉 java 您要使用该字段,而不是方法参数。
您需要像这样添加更改设置器:
之前
private void setMachineID(int machineID) {
machineID.set(machineID);
// ^^^^^^^^^ references method parameter
// ^^^^^^^^^ references method parameter
}
之后
private void setMachineID(int machineID) {
this.machineID.set(machineID);
// ^^^^^^^^^^^^^^ References field
// ^^^^^^^^^ references method parameter
}