Mam klasy z konstruktorem, który składa się z zestawu znaków i vararg typu String. Chcę konstruktora wygody z tylko vararg, który wywoła głównego konstruktora z defaultCharset i vararg.Przekazywanie varargs w konstruktorze podrzędnym
class StringMessage(charset: Charset, frames: String*) {
def this(frames: String*) = this(Charset.defaultCharset, frames)
}
Niestety klasa I wykazały daje dwa błędy:
called constructor's definition must precede calling constructor's definition
i
overloaded method constructor StringMessage with alternatives:
(frames: String*)mypackage.StringMessage <and>
(charset: java.nio.charset.Charset,frames: String*)mypackage.StringMessage
cannot be applied to (java.nio.charset.Charset, String*)
def this(frames: String*) = this(Charset.defaultCharset, frames)
^
Jaki jest najlepszy sposób do modelowania tego typu sytuacji?
Czy istnieje miejsce do głosowania za nieprzydatny komunikatów kompilatora? Nie widzę pierwszego błędu; i w 2.10, druga wiadomość została poprawiona na "nie można zastosować do (java.nio.charset.Charset, Seq [String])", dzięki czemu można zobaczyć Seq. –