跳过null进行@Insert注释与Android房

问题描述 投票:1回答:2

我使用DAO插入对象的阵列(例如用户[])向室内表:

@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAll(User... user);

然而,可能的是,内部用户[]某些对象为空。在这种情况下insertAll()方法抛出一个NullPointerException。

是否有可能以某种方式跳过空值?我宁愿使用@Insert注释,而不是写一个自定义插入查询或预先筛选出空值的。

java annotations sql-insert android-room
2个回答
0
投票
  1. 使相同的对象类型的另一个阵列
  2. 说它温度
  3. 通过所述第一阵列迭代
  4. 如果元素[I]为空时,从临时排除
  5. 在临时通过为您的方法的参数

在这里有人可能知道某种做你想做的事的库定义的方法,但这种方法来到我的脑海里第一。


0
投票

我希望房间就实现了一个工具来实现这一点,例如像@Ignore(null)注解,但似乎这样的情况并非如此。这是我的解决方案,现在:

调用ArrayUtils.removeAllOccurences(users, null)的方法org.apache.commons.lang3.ArrayUtils和使用结果作为insertAll()参数。

© www.soinside.com 2019 - 2024. All rights reserved.