次の Kotlin コードがあります。
fun handleResult(clazz: Any){
val store = App.getBoxStore();
if(clazz is List<*> && clazz.size > 0){
val items: List<*> = clazz;
val item = items.get(0);
val box = store.boxFor(item!!::class.java)
box.put(items)
}
}
オブジェクトを取り、それがコレクションであるかどうかをチェックし、コレクションである場合はアイテムを取り、コレクション アイテムのクラスをチェックし、データベースである ObjectBox と呼ばれるライブラリから Box を作成し、アイテムのリストをデータベース。
ただし、Box.put ステートメントで次のエラーが発生します。
Error:(45, 17) None of the following functions can be called with the
arguments supplied:
public open fun put(@Nullable vararg p0: Nothing!): Unit defined in
io.objectbox.Box
public open fun put(@Nullable p0: (Nothing..Collection<Nothing!>?)):
Unit defined in io.objectbox.Box
public open fun put(p0: Nothing!): Long defined in io.objectbox.Box
使用したいメソッドのシグネチャは次のとおりです。
public void put(@Nullable Collection<T> entities)
リストはコレクションであるため、ジェネリック型のコレクションを受け取ります。機能するはずです。
また、明示的にリストにキャストしましたが、それでも同じことを言います。
ありがとう!