我试图遵循NetBeans命名约定,但它不会编译?

时间:2017-04-01 00:54:16

标签: javafx-2

具有int值的setter表示int无法解除引用,并且字符串值无法找到该方法。我可能完全不明白,但他们看起来很好。

请指教,谢谢!

    private void setMachineID(int machineID) {
        machineID.set(machineID);
    }

    public int getMachineID(){
        return  machineID.get();
    }

    public IntegerProperty machineIDProperty(){
        return machineID;
    }   
}

1 个答案:

答案 0 :(得分:2)

您对字段和方法参数使用相同的标识符。

如果在代码的一部分中有多个具有相同标识符的变量,则java将使用声明的变量" close"这部分代码。

在这种情况下,方法参数的范围是"更接近"方法体比字段。因此,您必须明确告诉java您要使用该字段,而不是方法参数。

您需要像这样添加更改您的setter:

<强>之前

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 
}