我有一个类MyClass
其具有两个属性,String
类型之一,并且(使用Lombok的具有所有参数构造IM)空传入对象构造为类型长的属性
@AllArgsConstructor
public class MyClass{
private String sth;
private long id;
//some methods
}
现在类型long
之一在我的测试工厂类我希望有方法来创建的MyClass
物体String
集的东西和id
设置为null
public static MyClass getMyClassWithNullId() {
return new Myclass("some string", null);
}
然而上述鳕鱼e无法编译: The constructor MyClass(String, null) is undefined
为什么我不能将null传递给long? (任何长值,而不是空是正确的)
编辑:私人领域的MyClass id
被suposed为Long
,而不是long
,解决一切
使用'长'而不是'长'。基元不访问空值。 – Eran
@Eran建议您可以使用对象类型'Long'而不是原始类型'long'。但是请注意,如果您想在算术表达式中使用Long值(涉及[autoboxing](https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html)),会得到'NullPointerException'。 – 2016-09-29 08:36:48
@RafaelOsipov autoboxing与它有什么关系? ;) – Antoniossss