我有一个在
Java中定义的方法,如:
void foo(int x,Thing... things)
我需要在Scala中覆盖它,但这两个都会给出错误:
override def foo(x: Int,things: Thing*) override def foo(x: Int,things: Array[Thing])
错误指的是<重复...>但我不知道那是什么.
更新
Ugg ……没关系.我在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] ^
解决方法
Java的:
package rrs.scribble; public class VA1 { public int va1(int... ints) { return ints.length; } }
斯卡拉:
package rrs.scribble class VA1S extends VA1 { override def va1(ints: Int*): Int = ints.length * 2 }
SBT:
> ~compile [info] Compiling 1 Scala source and 1 Java source to …/scribble/target/scala-2.10/classes... [success] Total time: 4 s,completed Jan 15,2013 3:48:14 PM 1. Waiting for source changes... (press enter to interrupt)