gpt4 book ai didi

java - 如何从 Scala 调用将参数作为 List> 的 java 方法

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:40 26 4
gpt4 key购买 nike

我正在尝试调用一个采用 List<Class<?>>java 方法来自 scala

编译失败

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);

从 Scala 调用:

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)

据我所知应该是这样。)

关于java - 如何从 Scala 调用将参数作为 List<Class<?>> 的 java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55320574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com