当前位置: 首页 > 知识库问答 >
问题:

带Gson和Realm的机器人世界

薄伟彦
2023-03-14

我使用RoboSpice与GsonSpringAndroidSpiceService。我还想添加Realm来保存数据。

问题是在realm中,每个对象都必须扩展realmObject,但是roboSpice中的gson试图解析realmObject,而不是忽略它。

我试图添加排除声明:

Gson gson = new GsonBuilder()
        .setExclusionStrategies(new ExclusionStrategy() {

            @Override
            public boolean shouldSkipField(FieldAttributes f) {
                return f.getDeclaringClass().equals(RealmObject.class);
            }

            @Override
            public boolean shouldSkipClass(Class<?> clazz) {
                return false;
            }
        })
        .create();

然后

    GsonHttpMessageConverter gsonHttpMessageConverter = new GsonHttpMessageConverter(gson);

还尝试(单独)将@expose添加到对象中的字段,以及

Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

在这两个方面,我有相同的错误:

请帮助我与任何想法为什么我得到这个错误以及如何我可以解决它

共有1个答案

魏健柏
2023-03-14

我使用了Robospice改造领域

我在扩展RefughtsOnSpiceServiceService类中重写了createConverter(),解决了这个问题。不幸的是,我不能说得更清楚,因为我没有使用过gsonspringandroid服务

所以在我的Service类中,它看起来像这样:

@Override
protected Converter createConverter() {
    Gson gson = new GsonBuilder()
            .setExclusionStrategies(new ExclusionStrategy() {
                @Override
                public boolean shouldSkipField(FieldAttributes f) {
                    return f.getDeclaringClass().equals(RealmObject.class);
                }

                @Override
                public boolean shouldSkipClass(Class<?> clazz) {
                    return false;
                }
            })
            .create();

    return new GsonConverter(gson);
}

因此,我们的想法是找到可以使用默认配置初始化的Gson。这就是为什么我也将上述配置传递给了改造

new RestAdapter.Builder()
               .setConverter(new GsonConverter(gson))
               .build();

希望有帮助。

 类似资料:
  • 问题内容: 使用该方法时,需要将哪种代码传递给JavaFX Robot ? 例如,下面的示例输入,而不是,因此我想某处有一个映射。 注意:这是JavaFX机器人,而不是AWT机器人。 问题答案: 代码在javafx.scene.input.KeyCode中定义为常量。 使用玻璃机器人,您可以使用不推荐使用的方法: 您也可以使用FXRobot,它以KeyCodes作为参数:

  • 概述 PDF版下载 机器人是企业群的高级扩展功能,所有的Hi企业用户均可在企业群中添加使用机器人功能。 企业可以通过机器人推送消息到群聊,也可以通过机器人接收用户的消息,拥有用户和机器人对话的能力。 机器人类型 自定义机器人:由企业开发实现的机器人,一般用来发送企业通知,也可以利用ai会话技术实现有趣的功能。 企业机器人:目前开放的定时通知、投票、问卷机器人由如流开发,企业管理员在企业管理后台的「

  • 我想使用Java机器人类,以便将鼠标移动到一个链接上,动态地创建更多的内容。对于web交互,我使用Selenium WebDriver。 Selenium为getLocation函数引发错误: 有人知道我做错了什么吗?

  • 使用说明 使用前必须先在群组里面添加机器人,然后将 Webhook 地址 中的 key 取出来,作为示例中 $groupKey 的值。 Webhook 地址示例:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=`ab4f609a-3feb-427c-ae9d-b319ca712d36` 微信文档:https://work.weixin.qq

  • 我们正在与IE和Java一起运行Selenium。单击web页面上的链接将打开一个新的IE页面,该页面显然不是IE驱动程序的子页面,因此我无法执行驱动程序。switchTo();这一页是一个表单,文件名和确定按钮为空白。以前的开发人员创建了一个robot类,并发送9个TAB键压事件以获得OK按钮,然后发送一个 现在我需要更改文件名中的值,所以我计算了制表符的数量,直到我到达文件,然后做一个退格键并

  • 嗨,我想写注册机器人。 我在python中使用selenium,一开始我遇到了以下问题。 有了它,我可以找到注册链接,但当我试图点击它时,它会给我: 我是不是很难适应这种环境?如何在由find_elements_by_something创建的列表中的元素上执行单击功能?