我创建了一个类,其中包含一个带有设置器的 Long 属性。当尝试使用 setter 将值设置为某个随机数时,Idea告诉我实际参数 int 无法通过方法调用转换转换为 Long。
这是我的课:
public myClass() {
private Long id;
public Long getId() {
return this.id;
}
public Long setId(Long id) {
if(this.id == null)
this.id = id;
else throw new InvalidOperationException("Can't set more than once.");
}
}
在其他地方,我只是想:
MyClass myInstance = new myClass();
myInstance.setId(15);
构建错误提示我尝试这样的技巧:
long newID = 17;
myInstance.setId(newID);
...这行得通。唯一奇怪的是,我在 NetBeans 中打开了一个不同的项目,并且在相同的情况下没有编译错误(排除任何“外部”影响或不需要的交互非常安全,就像我的代码片段一样简单) .
这可能是编译器设置的事情吗?我现在想更多地了解发生了什么以及为什么我不能使用myInstance.setId(15)