11

Scala で次の 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 を使用しています。

4

1 に答える 1

8

@varargs注釈を使用:

override def acceptLanguage(@varargs locales: Locale*) : Unit =
override def acceptLanguage(@varargs locales: String*) : Unit =
于 2012-11-14T23:35:57.367 に答える