繁体   English   中英

Google Web Toolkit Eclipse @Persistent(serialized =“ true”)未在构造函数中更新

[英]Google Web Toolkit Eclipse @Persistent(serialized =“true”) Not Updating in Constructor

我正在编写一个简单的Java Google Web Toolkit应用程序,但在更新类中的变量时遇到了一些麻烦。 这是我的代码:

@PersistenceCapable(identityType=IdentityType.APPLICATION)
public class Dog implements Serializable {
    @PrimaryKey
    @Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
    private Long id;

    @Persistent(serialized ="true")
    private Owner owner=null;

    public Dog() {}

    public Dog(Owner owner) {
        this.owner = owner;
    }

    public Owner getOwner() {
        return owner;
    }
}

所有者类在哪里:

public class Owner  implements Serializable {
    private static final long serialVersionUID = 1L;
    @Persistent
    private String name="";

    public Owner() {}

    public Owner(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

当我运行代码时:

    Dog testDog = new Dog(new Owner("Dog Owner"));
    testDog.getOwner().getName();

我收到关于dog类中的所有者为null的错误。 为什么会这样呢? 为什么所有者变量没有在构造函数中更新? 我该如何解决这个问题?

谢谢大家的阅读!

首先,我不是Java开发人员,所以如果我完全错了,请不要解雇我。 我只是通过指出我发现的不一致之处来提供帮助。

在狗课上

public Dog(Owner owner) {
    this.owner = owner;
}

但是在所有者中

public Owner(String string) {
    name = string;
}

我认为您可能在Owner以及两个 return语句中缺少this

另外,我建议Owner(String name)而不是Owner(String string) ,但这只是我是一名挑剔的Pythonista。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM