1

次の 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)

リストはコレクションであるため、ジェネリック型のコレクションを受け取ります。機能するはずです。

また、明示的にリストにキャストしましたが、それでも同じことを言います。

ありがとう!

4

1 に答える 1