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