我有一个用Java定义的方法,例如:
void foo(int x, Thing... things)
我需要在 Scala 中覆盖它,但这两个都给出错误:
override def foo(x: Int, things: Thing*)
override def foo(x: Int, things: Array[Thing])
错误指的是,<repeated...>
但我不知道那是什么。
更新
呃……没关系。我在 2.10.0 中,我输错了一些东西并且没有方法体。然后我被这个错误信息弄糊涂了,这对我来说仍然很奇怪。在 SBT 中:
> compile
[info] Compiling 1 Scala source to [...]/target/scala-2.10/classes...
[error] [...]/src/main/scala/Translator.scala:41: class MyMethodVisitor needs to be abstract, since method visitTableSwitchInsn is not defined
[error] (Note that org.objectweb.asm.Label* does not match <repeated...>[org.objectweb.asm.Label])
[error] class MyMethodVisitor extends MethodVisitor (Opcodes.ASM4) {
[error] ^
问题是我visitTableSwitchInsn
只是缺少一个主体,但错误表明问题是可变参数的类型。