带有val的通配符数组上的Scala编译器错误

时间:2012-08-12 08:54:14

标签: scala

使用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]

无法提供行号。

1 个答案:

答案 0 :(得分:1)

看起来像Scala编译器中的错误(它在异常时死亡)。您应该向Scala开发人员报告。

使用AnyRef代替Any为我修复了它:

class Poso(val array : Array[_ <: AnyRef])
object Test {
  new Poso(classOf[java.lang.annotation.Retention].getEnumConstants())
}