我是新来的对象化,我不明白什么(愚蠢的事情)。
我正在构建一个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);
    }

好的,代码非常简单,我得到一个游戏对象,然后将其序列化为json对象,然后发送响应。
但我不明白异步load()是如何工作的。
如果load().ref(jref)是异步的:
它会返回什么?因此,如果load().ref()返回空对象或“未来”对象:
我用这个东西的时候发生了什么?(我使用空值对象?一个“还在等待”的物体?
我怎么知道东西准备好了?(一些听者,处理者?)使用它?
额外:如果没有任何方式知道对象何时准备好,如何加载ref synchronous?
谢谢

最佳答案

答案是:
https://groups.google.com/forum/?fromgroups=#!topic/objectify-appengine/8dLAbSWJVB4
“简短的回答”是ref/map/list是异步的外观,当您试图实现pojo时,它会同步阻塞。就像未来一样。

09-07 21:07