Ich habe eine Klasse mit einem Konstruktor, der aus einem Zeichensatz und einem Vararg des Typs String besteht. Ich möchte einen Convenience-Konstruktor mit nur dem Vararg, der den Hauptkonstruktor mit dem DefaultCharset und dem Vararg aufruft.Weitergabe von Varargs in einem sekundären Konstruktor
class StringMessage(charset: Charset, frames: String*) {
def this(frames: String*) = this(Charset.defaultCharset, frames)
}
Leider ist die Klasse I gezeigt haben, gibt zwei Fehler:
called constructor's definition must precede calling constructor's definition
und
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)
^
Was ist der beste Weg, um diese Art von Situation zu modellieren?
Gibt es einen Ort wählen für nicht hilfreich Compiler-Meldungen? Ich sehe den ersten Fehler nicht; und in 2.10 wird die zweite Nachricht auf "nicht anwendbar auf (java.nio.charset.Charset, Seq [String])" verbessert, so dass Sie die Seq sehen können. –