9
有没有在Scala中实现以下Java接口的方法?在Scala中重载使用重载vargs方法的Java接口
public interface Request {
void acceptLanguage(Locale... locales);
void acceptLanguage(String... locales);
}
我想:
override def acceptLanguage(locales: Locale*) : Unit =
override def acceptLanguage(locales: String*) : Unit =
但是,这给了我:
error: double definition:
have same type after erasure
我试过这样:
override def acceptLanguage(locales: Locale*) (implicit Manifest[Locale]) : Unit = {}
override def acceptLanguage(locales: String*) (implicit Manifest[String]): Unit = {}
但如此超控发生故障,给出了一个不同的签名
我使用的是版本2.9.2。
我认为这是正确的轨道上。根据我发现的 注解继续这个方法。我仍然得到以下错误: 带有varargs注释的方法产生具有相同签名的转发器方法 – Eduardo
我做了一个小例子,其中一个方法使用@varargs注解。编译器生成两个方法,一个使用Seq,另一个使用数组。当scala方法用可变参数覆盖java方法时,编译器也会自动完成此操作。由于使用Seq的方法仍然生成问题仍然存在 – Eduardo
对,我的答案肯定不能解决您的问题。抱歉,我的回答太仓促了。 – ghik