我有一个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
它非常简单,省去了进行额外查询以定位传递对象的麻烦。