在对象构造函数中为long

时间:2016-09-29 08:33:58

标签: java long-integer

我有一个类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,这解决了所有问题

2 个答案:

答案 0 :(得分:4)

您的构造函数应该看起来像

public void MyClass(String str,Long param){}

然后像new MyClass("hello",null);这样的来电有效

答案 1 :(得分:-1)

好的,没关系,long是原始类型,不能为null,使用warper class Long解决它