Android ParseObject子类无法在构造函数中进行更改

Android ParseObject子类无法在构造函数中进行更改,android,constructor,parse-platform,subclass,Android,Constructor,Parse Platform,Subclass,我有一个ParseObject子类,它的构造函数试图用一个新的UUID设置一个字段: @ParseClassName("Results") public class Results extends ParseObject { public static final String FIELD_UUID = "uuid"; public Results() { // Default constructor setUuid(); }

我有一个ParseObject子类,它的构造函数试图用一个新的UUID设置一个字段:

@ParseClassName("Results")
public class Results extends ParseObject {
    public static final String FIELD_UUID = "uuid";

    public Results() {
        // Default constructor
        setUuid();
    }

    public String getUuid() {
        return getString(FIELD_UUID);
    }

    public void setUuid() {
        UUID uuid = UUID.randomUUID();
        put(FIELD_UUID, uuid.toString());
    }

    ...
}
但是,显然我无法在构造函数中调用setUuid,因为出现以下错误:

java.lang.IllegalStateException: A ParseObject subclass default constructor must not make changes to the object that cause it to be dirty.

我更喜欢在每次创建新的结果对象时自动设置UUID,而不是创建一个新对象,然后调用setUuid。这是可能的,还是有解决办法?

指针无疑是一种方法

我找到的最好方法是使用EventBus传递整个ParseObjects,您可以在我对这个问题的回答中找到一个示例:


它非常简单,并且省去了为定位传递的对象而进行额外查询的麻烦。

如果我是你,我会使用云代码。在保存结果之前自动生成UUID。为什么需要UUID?假设您有ObjectId,它在每个应用程序中都是唯一的。我会使用ObjectId,但它在保存到云中之前是空的。我的所有ParseObject都保存在本地数据存储中。我也已经脱离了离线待办事项列表教程。在用户尚未注册或没有连接的情况下,我需要一种本地方法来创建ParseObject子类之间的关系。UUID方法似乎是最好的方法。我也使用本地数据存储,但我不需要这样的东西。。你能举一个具体的例子说明你如何/为什么需要这个吗?另外,如果两个对象都是新创建的,那么在它们之间添加依赖项应该是有效的,尽管没有objectId。这是推荐的吗?我使用UUID的一个例子是当需要在活动之间传递ParseObject的数据时。我认为通过意图在活动之间传递和标识要比传递整个ParseObjects好。指针无疑是一种方法。我找到的最好的方法是使用EventBus传递整个ParseObject,在我对这个问题的回答中,您会发现一个例子:它非常简单,省去了您进行额外查询来定位传递的对象的麻烦。