简体   繁体   中英

Overriding Java interface with overloaded vargs methods in Scala

Is there a way to implement the following Java interface in Scala?

public interface Request {
    void acceptLanguage(Locale... locales);
    void acceptLanguage(String... locales);
}

I tried:

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

But that gives me:

error: double definition:
have same type after erasure

And I tried this:

override def acceptLanguage(locales: Locale*) (implicit Manifest[Locale]) : Unit = {}
override def acceptLanguage(locales: String*) (implicit Manifest[String]): Unit = {}

But that gives a different signature so override fails

I am using version 2.9.2.

Use @varargs annotation:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM