ParseObject子类不能在构造函数中进行更改



我有一个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.

我更希望每次创建新的Results对象时都自动设置UUID,而不是创建一个新对象,然后调用setUuid()。这有可能做到吗?或者有变通办法吗?

指针绝对是最好的选择。

我找到的最好的方法是使用EventBus传递整个ParseObjects,你会在我对这个问题的回答中找到一个例子:从onListItemClick 获取Parse Object ID

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

最新更新