【发布时间】:2012-08-08 21:29:15
【问题描述】:
以下代码在构造函数参数用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 编译器中的错误:类型不匹配;找到:java.lang.Object required: array[java.lang.Object]
无法给出行号。
【问题讨论】:
-
在 2.9 和 2.10 中都无法重现该错误。您确定错误是由 val 关键字引起的吗?
-
将 val 放入其中会中断。如果我有一个成员 val 并将构造函数参数分配给它,那么它就可以工作(这就是我正在做的)。我将使用堆栈跟踪更新我的问题。你用的是什么版本的2.9?我还应该指出,我正在为我的构建使用 scala maven 插件,所以如果它对你有用(在“普通”scala 中)那么它可能在我的堆栈中出错。
标签: scala