我有一個類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