Matthias: Übergabe von Variablen

Guten Morgen,

ich hätte gerne gewusst, ob es möglich ist:

public String create( String test1="", String test2="" ) {
   String str;
   if( test1 != "", test2 != "" ) {
      str = "Test1 = "+ test1 +" und Test2 = "+ test2;
   }
   return str;
}

Hätte jetzt gerne gewusst, ob es bei Java möglich ist so die Übergabe
von Parameter zu gestallten. Bei PHP kann ich das bei Funktionen
machen. Ich möchte beim Aufruf der Funktion einfach Standardwerte
zuweisen, so dass diese nicht unbedingt bei der Übergabe angegeben
werden müssen. Gebe ich sie aber bei der Übergabe an werden diese
Werte "überschrieben".

  1. Hallo Matthias,

    »» Guten Morgen,

    ich hätte gerne gewusst, ob es möglich ist:

    public String create( String test1="", String test2="" ) {

    ----------------^      ----------^
    Warum willst Du der Methode schon startwerte geben, die soll sie doch beim aufruf erst erhalten!

    String str;
       if( test1 != "", test2 != "" ) {

    Einen String solltest Du so: string1.equalsIgnoreCase(string2)
    oder einfach nur mit equals() prüfen, wenn die Groß- und Kleinschreibung egal ist!

    Somit dann also wie folgt:

      
    public String createStr( String test1, String test2 ) {  
      if (!test1.equals("") && !test2.equals("")) { // hier könnte ein trim() noch helfen  
        return "Test1 = "+ test1 +" und Test2 = "+ test2;  
      }  
      else {  
        return "Fehler";  
      }  
    }  
      
    //der Aufruf  
    System.out.println(createStr("Katze","Hund");  
    
    

    Mit freundlichem Gruß
    Micha

  2. Hallo,

    public String create( String test1="", String test2="" ) {
       String str;
       if( test1 != "", test2 != "" ) {
          str = "Test1 = "+ test1 +" und Test2 = "+ test2;
       }
       return str;
    }

    Hätte jetzt gerne gewusst, ob es bei Java möglich ist so die Übergabe
    von Parameter zu gestallten.

    Nein, das geht aktuell in Java nicht. Du kannst das angestrebte Ergebnis
    aber annähernd durch Überladen der Methode "create" erreichen, etwa so:

    public String create(String test1, String test2)
    {
      ...
    }

    public String create(String test1)
    {
      create(test1, "");
    }

    public String create()
    {
      create("", "");
    }

    Somit könntest du beispielweise "create()" aufrufen, was einem Aufruf
    von create("", "") entspricht, was du ja willst.

    Benannte Parameter gibt es in Java jedoch nicht, so daß du im konkreten
    Fall für test1 niemals einen Default-Wert angeben kannst, wenn du
    gleichzeitig test2 explizit übergibst.

    Du könntest der Methode natürlich auch eine Hashtable oder dergleichen
    mitgeben, aus der dann anhand des Namens der Variablenwert gelesen
    werden kann. Aus Gründen des Overheads und der Möglichkeit von
    Laufzeitfehlern willst du das aber nicht wirklich.

    Gruß
    Slyh