スカラから一覧<クラス<?>>などのパラメータを取るJavaメソッドを呼び出す方法

sooper:

私は呼んしようとしていたJava取る方法List<Class<?>>からスカラを

コンパイルが失敗すると

type mismatch;
 found   : java.util.List[Class[T]] where type T <: Person.type
 required: java.util.List[Class[_]]

私はJavaConvertersを使用してみましたが、同じエラーを取得します。

Javaメソッド:

void registerClasses(List<Class<?>> var1);

スカラからの呼び出し:

def registerEntities() = registry.registerClasses(List(Person.getClass).asJava)

アレクセイ・ロマノフ:

問題はのための推論された型があることであるPerson.getClassあなたが望むものではありません。あなたは期待タイプを指定する必要があり、これは明示的な型パラメータによって行うことができます

registry.registerClasses(List[Class[_]](Person.getClass).asJava)

タイプの帰属はここで働いていない理由(私は理解していません。

registerClasses(List(Person.getClass: Class[_]).asJava)

type mismatch;
 found   : java.util.List[Class[_$2]] where type _$2
 required: java.util.List[Class[_]]
Note: Class[_$2] <: Class[_], but Java-defined trait List is invariant in type E.
You may wish to investigate a wildcard type such as `_ <: Class[_]`. (SLS 3.2.10)

これまでのところ、私はそれをすべきである言うことができるように。)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=180741&siteId=1