Objectbox的一个小坑

在使用objectbox的时候,每一个Entity都需要一个空的构造函数,默认对象是有空构造函数的,但如果你写了一个有参数的构造函数时就需要自己写上一个空的构造函数了,不然在某些情况下,代码运行了,但没有反应且不会报错的。通常情况下是会报错的,说你缺少空的构造函数。在官方的文档上是有写,需要一个空的构造函数,但未必每次的记得。以下是一个没有反应但不会报错的例子(objectBox的版本:2.0.0-beta,以后的版本可能会有完善,对应版本来看)

objectBoxLiveData = new ObjectBoxLiveData<Test>(test.query().build());
        objectBoxLiveData.observe(this, new Observer<List<Test>>() {
            @Override
            public void onChanged(@Nullable List<Test> test) {
                Log.i("a", takeDrugRecords.size() + "");
            }
        });

 如果test这个对象是没有空构造函数的话且有一个有参数的构造函数,就算调用了put也是没有用的,observer里面的onchange是不会被调用的。

如果你用相同的代码调用以下函数会报错:

List<Test> test1 = test.query().build().find();

说没有空的构造函数,这个在使用objectbox的时候要小心,不然一直走不出这个坑,希望以后官方会有改善吧。

(代码只是作为演示用,对象名等可能存在偏差,理解就好)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值