我有一个类MyClass
,它有两个属性,一个是类型String
,另一个是类型long
(我使用lombok来拥有所有参数构造函数)
@AllArgsConstructor
public class MyClass{
private String sth;
private long id;
//some methods
}
现在在我的测试工厂类中,我希望有方法来创建MyClass
的对象,其中String
设置为某个而id
设置为null
public static MyClass getMyClassWithNullId() {
return new Myclass("some string", null);
}
但是上面的代码无法编译:
The constructor MyClass(String, null) is undefined
为什么我不能将null传递给long? (任何长值而不是null都是正确的)
编辑:MyClass的私有字段id
被认为是Long
而不是long
,这解决了所有问题
答案 0 :(得分:4)
您的构造函数应该看起来像
public void MyClass(String str,Long param){}
然后像new MyClass("hello",null);
这样的来电有效
答案 1 :(得分:-1)
好的,没关系,long
是原始类型,不能为null,使用warper class Long
解决它