我是Objectify的新手,我不明白(一件蠢事)。 我正在构建一个Restful Web服务(使用restlet),我正在创建一个JSON响应。所以:
Party party;
for(Ref<Game> jref : party.games)
{
JSONObject object = new JSONObject();
try{
Game gAux = jref.get(); //If the value ref is not load, the excetion throws
}
catch(IllegalStateException e)
{
//Is asynchronous
jref = ObjectifyService.ofy().load().ref(jref);
}
serializeGame(jref.get(), object);
}
好的,代码非常简单,我得到一个Game对象然后我将它序列化为JSON对象,然后我发送响应。
但我不明白异步load()
是如何工作的。
如果load().ref(jref)
是异步的:
load().ref()
返回“未来”对象的空对象:非常感谢
答案 0 :(得分:1)
这是在这里回答的:
https://groups.google.com/forum/?fromgroups=#!topic/objectify-appengine/8dLAbSWJVB4
“简短回答”是Ref / Map / List是异步外观,当您尝试实现POJO时,它会同步阻止。就像Future。