Initialisierung?



  • Moin!
    Gibt es in Java eine Möglichkeit Funktionsargumente zu initialisieren, also im Stile von:

    public void foo(boolean bar = false)
    {
    .
    .
    .
    }
    

    Sodass ein Funktionsaufruf von foo ohne Parameter (foo()) und auch einer mit Parameter (foo(false), foo(true)) gestattet ist?
    Mir ist klar, dass man auch sowas machen kann:

    public void foo()
    {
         this.foo(false);
    }
    
    public void foo(boolean bar)
    {
    .
    .
    .
    }
    

    Aber gerade wenn man viele Parameter hat finde ich das äußerst umständlich!

    Danke schonmal im Voraus für alle Antworten!



  • hackbert schrieb:

    Mir ist klar, dass man auch sowas machen kann:

    public void foo()
    {
         this.foo(false);
    }
    
    public void foo(boolean bar)
    {
    .
    .
    .
    }
    

    Eine andere Möglichkeit hast du nicht.



  • Schade, dass dieses Feature anscheinend seinen Weg in Java selbst in 10 Jahren nicht gefunden hat. Man wird sich damit abfinden müssen...



  • Das wird auch in den nächsten 10 Jahren nicht kommen, es ist nämlich nicht unproblematisch. foo() und foo(int) sind zwei unterschiedliche Methoden, die unterschiedliche Sichtbarkeiten haben können, eine kann final sein, die andere nicht. Sie haben prinzipiell erstmal nichts miteinander zu tun. Je nach Situation könnte foo(); dann einmal den Aufruf von foo() oder von foo(int) zur Folge haben.
    In C++ funktioniert das auflösen von Methoden-Aufrufen anders, was wiederum seine eigenen Nachteile, diesen speziellen aber nicht hat.



  • Ok, ich gebe es zu: Ich bin eher in C/C++ zu Hause 😃
    Manchmal ist das Konzept von Java etwas ungewöhnlich für mich. Eben anders.


Anmelden zum Antworten