java - 在 Scala 中使用重载的 vargs 方法覆盖 Java 接口(interface)

标签 java scala

有没有办法在 Scala 中实现以下 Java 接口(interface)?

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注解:

override def acceptLanguage(@varargs locales: Locale*) : Unit =
override def acceptLanguage(@varargs locales: String*) : Unit =

关于java - 在 Scala 中使用重载的 vargs 方法覆盖 Java 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13389121/

相关文章:

java - 我是否需要签署我的 .jar 应用程序文件才能让它们在 OS X 或 Windows 中运行?

java - Android 绘图线 2 点

scala - 为什么 prepend 在 Seq 上的行为会有所不同,具体取决于您如何调用它?

multithreading - Scala future及其回调在相同的执行上下文中工作

java - 获取调用页面的URL Java

java - 如何通过 gradle 插件强制执行此模式?

java - 规范中未定义任何操作!在swagger ui中指定多个路径时

java - 我如何使用 slick 3.0 一次返回一行?

带有重载提取器的 Scala 语言?

java - 包含库项目时出现 ClassNotFoundException(Eclipse、Android)