在 long 类型的 属性 的对象构造函数中传递 null
passing null in object constructor for property of type long
我有一个 class MyClass
它有两个属性,一个是 String
类型,一个是 long
类型(我使用 lombok 来拥有所有参数构造函数)
@AllArgsConstructor
public class MyClass{
private String sth;
private long id;
//some methods
}
现在在我的测试工厂中 class 我想要创建 MyClass
对象的方法,其中 String
设置为某物并且 id
设置为 null
public static MyClass getMyClassWithNullId() {
return new Myclass("some string", null);
}
但是上面的代码无法编译:
The constructor MyClass(String, null) is undefined
为什么我不能将 null 传递给 long? (任何 long 值而不是 null 都是正确的)
编辑:MyClass 的私有字段 id
应该是 Long
而不是 long
,这解决了所有问题
你的构造函数应该看起来像
public void MyClass(String str,Long param){}
然后像new MyClass("hello",null);
这样的调用将有效
ok,没关系,long
是原始类型,不能为null,用warper class Long
解决了
我有一个 class MyClass
它有两个属性,一个是 String
类型,一个是 long
类型(我使用 lombok 来拥有所有参数构造函数)
@AllArgsConstructor
public class MyClass{
private String sth;
private long id;
//some methods
}
现在在我的测试工厂中 class 我想要创建 MyClass
对象的方法,其中 String
设置为某物并且 id
设置为 null
public static MyClass getMyClassWithNullId() {
return new Myclass("some string", null);
}
但是上面的代码无法编译:
The constructor MyClass(String, null) is undefined
为什么我不能将 null 传递给 long? (任何 long 值而不是 null 都是正确的)
编辑:MyClass 的私有字段 id
应该是 Long
而不是 long
,这解决了所有问题
你的构造函数应该看起来像
public void MyClass(String str,Long param){}
然后像new MyClass("hello",null);
这样的调用将有效
ok,没关系,long
是原始类型,不能为null,用warper class Long
解决了