Übergabe von Variablen
Matthias
- java
0 derletztekick0 Slyh
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".
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
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