使用val
声明构造函数参数时,以下代码失败使用:
class Poso(array : Array[_ <: Any])
object Test {
new Poso(classOf[Retention].getEnumConstants())
}
不起作用:
class Poso(val array : Array[_ <: Any])
object Test {
new Poso(classOf[Retention].getEnumConstants())
}
编译器提供错误:
Scala编译器出错:类型不匹配; found:java.lang.Object required:array [java.lang.Object]
无法提供行号。
答案 0 :(得分:1)
看起来像Scala编译器中的错误(它在异常时死亡)。您应该向Scala开发人员报告。
使用AnyRef
代替Any
为我修复了它:
class Poso(val array : Array[_ <: AnyRef])
object Test {
new Poso(classOf[java.lang.annotation.Retention].getEnumConstants())
}