Parse platform Parse4cn1从缓存数据重新创建用户

Parse platform Parse4cn1从缓存数据重新创建用户,parse-platform,codenameone,parse4cn1,Parse Platform,Codenameone,Parse4cn1,我正在尝试在我的cn1应用程序中为从parse下载的数据创建一个缓存系统,这样应用程序就不必每次都进行网络调用。我不想使用parse4cn1库中内置的外部化实现,因为据我所知,它会将每个对象写入一个文件,并且我希望使用大型对象列表缓存整个查询 我在尝试还原以前查询过的ParseUser对象(例如当前用户团队的成员)时遇到问题。如果不扩展类,我看不到任何实例化ParseUser对象的方法。这就是我应该做的,还是有其他方法来解决这个问题 我犹豫不决的是,除了这一需要之外,我没有理由子类ParseUs

我正在尝试在我的cn1应用程序中为从parse下载的数据创建一个缓存系统,这样应用程序就不必每次都进行网络调用。我不想使用parse4cn1库中内置的外部化实现,因为据我所知,它会将每个对象写入一个文件,并且我希望使用大型对象列表缓存整个查询

我在尝试还原以前查询过的
ParseUser
对象(例如当前用户团队的成员)时遇到问题。如果不扩展类,我看不到任何实例化
ParseUser
对象的方法。这就是我应该做的,还是有其他方法来解决这个问题

我犹豫不决的是,除了这一需要之外,我没有理由子类
ParseUser
,如果我注册我的子类,我认为它必须使用不同的类名,并且需要对代码的其他部分进行重大调整

更新

为了公开一个空构造函数,我将
ParseUser
子类化,多亏了多态性,我不必更改任何其他代码。看起来是这样的:

    public static class MyParseUser extends ParseUser{
        public static ParseUser fromData(JSONObject data){
            ParseUser user = new VqParseUser();
            user.setData(data);
            return user;
        }

        private MyParseUser(){
            super();
        }
    }
然后,在我的代码中:

ParseUser ParseUser=MyParseUser.fromData(json)


我仍然好奇这是否是最好的方法。

添加了
parse4cn1
标记,以便订阅该标记的人可以看到该标记。我对解析的用户机制不太熟悉,无法回答这个问题,但我不理解多个较小文件的厌恶?我想在代码中使用多个文件比使用单个文件要麻烦得多,我喜欢我目前使用的一对一查询到文件的关系。但是,缓存体系结构尚未最终确定,我可能最终会将其更改回使用
Externalizable
,通常一个文件意味着读取所有文件,因为我们不支持随机文件访问(如果支持,您仍然需要编写适当的查找逻辑)。多个小文件的速度更快。@jegesh我已经有一段时间没有使用持久化界面了,但我很快就看到,您在很大程度上可以控制文件的粒度
Storage.writeObject(filename,obj)
使用该名称创建一个新的存储文件(如果我错了,Shai会纠正我)。因此,您可以选择将所有相关查询结果捆绑到一个集合中,并一次性存储,而不是为每个文件存储一个解析对象。然后,您不需要对
ParseUser
ps进行子类化:parsejavasdk实现了一个更复杂的数据缓存机制(),该机制应该可以在
parse4cn1
中复制。我从来没有研究过它,也没有将实现移植到CN1的可外部化接口,但它应该是可以做到的,不需要太多的努力。在您的用例中,这会是一个有吸引力的替代方案吗?添加了
parse4cn1
标记,以便订阅该标记的人可以看到该标记。我对解析的用户机制不太熟悉,无法回答这个问题,但我不理解多个较小文件的厌恶?我想在代码中使用多个文件比使用单个文件要麻烦得多,我喜欢我目前使用的一对一查询到文件的关系。但是,缓存体系结构尚未最终确定,我可能最终会将其更改回使用
Externalizable
,通常一个文件意味着读取所有文件,因为我们不支持随机文件访问(如果支持,您仍然需要编写适当的查找逻辑)。多个小文件的速度更快。@jegesh我已经有一段时间没有使用持久化界面了,但我很快就看到,您在很大程度上可以控制文件的粒度
Storage.writeObject(filename,obj)
使用该名称创建一个新的存储文件(如果我错了,Shai会纠正我)。因此,您可以选择将所有相关查询结果捆绑到一个集合中,并一次性存储,而不是为每个文件存储一个解析对象。然后,您不需要对
ParseUser
ps进行子类化:parsejavasdk实现了一个更复杂的数据缓存机制(),该机制应该可以在
parse4cn1
中复制。我从来没有研究过它,也没有将实现移植到CN1的可外部化接口,但它应该是可以做到的,不需要太多的努力。在您的用例中,这会是一个有吸引力的替代方案吗?