Android App需要使用本地数据库,以前都是自己用android Sqlite原生代码实现。
前不久看同事使用LitePal库,发现挺好用的,就直接拿过来用,懒得自己再写代码了。
然后使用LitePal.where方法查询时,抛出异常:
org.litepal.exceptions.LitePalSupportException: java.util.List has no constructor. LitePal could not handle it
我有点摸不着头脑,网上搜了搜也没有结果。虽然每一句话我都懂,但就是不明白它在说什么!
我的实体里面包含一个泛型集合属性,List
谁说List没有构造器了?
这是上周五下午出的问题,烦恼了一下午。然后今天周一上班,下午才想起这个问题,仍然没有头绪。
就突然想起Java里面List好像是抽象类,确实没有构造器!这明明白白是LitePal试图用反射创建抽象类的对象时,抛出的异常。
无论是C#还是kotlin,我都习惯了用List,真的是想不起来还有这回事。
改成ArrayList就完事了。