Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Verkettung von Konstruktoren

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.06.2005
    Ort
    Darmstadt
    Beiträge
    59

    Verkettung von Konstruktoren

    Hallo Gemeinde,

    ich habe ein Problem zwei Konstruktoren zu verketten. Folgendes Minimalbeispiel demonstriert das Problem:

    Code:
    [...]
    public K(T t1, T t2, T t3) {
         this({t1, t2, t3});
    }
    
    public K(T[] t) {
         // Initialisiert die Objektvariablen ausgehend von t
    }
    [...]
    Soll heissen ich habe zwei Konstruktoren: Einem übergebe ich ein paar Werte einzeln (K1), einem alle Werte in einem Array (K2). K2 deutlich einfacher zu implementieren.

    Der o.g. Code funktioniert leider nicht. Die Fehlermeldung ist:
    Code:
    - Syntax error on token "this", invalid AnnotationName
    - Syntax error, insert "EnumBody" to complete BlockStatements
    - Syntax error, insert "enum Identifier" to complete EnumHeader
    Folgender code
    Code:
    [...]
    public K(T t1, T t2, T t3) {
         K({t1, t2, t3});
    }
    [...]
    resultiert in der Fehlermeldung
    Code:
    - Syntax error on token "K", @ expected before this token
    - Syntax error, insert "EnumBody" to complete BlockStatements
    - Syntax error, insert "enum Identifier" to complete EnumHeader
    Ich weiss mir auch nicht wirklich zu helfen, da der Aufruf eines anderen Konstruktors imho immer die erste Anweisung im Konstruktor sein muss.

    Daher meine Frage(n):
    Hat jemand eine mehr oder weniger elegante Lösung für das Problem? Was heisst eigentlich @ vor einem Konstruktor?

    Danke im Voraus,
    Gruesse,
    Benjamin
    +++ this message is printed on 100% recycled electrons +++

  2. #2
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    Zitat Zitat von BinEinGast Beitrag anzeigen
    Code:
    this({t1, t2, t3});
    Du musst ein anonymes Array erstellen:
    Code:
    this(new T[] {t1, t2, t3});

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •