Ich habe es ein wenig gelesen und ich verstehe, dass Sie in Java den ursprünglichen Wert der gegebenen Parameter nicht ändern können und erwarten, dass diese nach der Methode bestehen bleiben. Aber ich würde wirklich gerne einen guten Weg kennen, dies zu tun. Könnte mir jemand Hinweise geben, was ich tun könnte, damit diese Methode funktioniert? Vielen Dank.Setzen Sie Parameter auf persistente Werte
/**
* This will set values in the given array to be "" (or empty strings) if they are null values
*
* @param checkNull
*/
public static void setNullValuesBlank(String... checkNull) {
for (int i = 0; i < checkNull.length; i++) {
String check = checkNull[i];
if (check == null) {
check = "";
}
}
}
EDIT
So habe ich es auf das Array zu setzen, wie mehrere Personen erwähnt, und es funktioniert super, wenn ich das Array in erster Linie konstruieren, aber wenn ich dann tue es nicht funktioniert nicht.
Hier ist die feste Methode:
/**
* This will set values in the given array to be "" (or empty strings) if they are null values
*
* @param checkNull
*/
public static void setNullValuesBlank(String... checkNull) {
for (int i = 0; i < checkNull.length; i++) {
if (checkNull[i] == null) {
checkNull[i] = "";
}
}
}
Hier ist ein Anruf, wo es funktioniert:
String s = null;
String a = null;
String[] arry = new String[]{s, a};
for (int i = 0; i < arry.length; i++) {
System.out.println(i + ": " + arry[i]);
}
setNullValuesBlank(arry);
for (int i = 0; i < arry.length; i++) {
System.out.println(i + ": " + arry[i]);
}
hier ein Anruf, wo es nicht Arbeit, aber ich möchte es:
String q = null;
String x = null;
System.out.println("q: " + q);
System.out.println("x: " + x);
setNullValuesBlank(q, x);
System.out.println("q: " + q);
System.out.println("x: " + x);
Ausgabe davon:
q: null
x: null
q: null
x: null
Gibt es eine Möglichkeit für mich nicht das Array in erster Linie zu konstruieren, haben? – kentcdodds
Sie müssen es konstruieren, da Sie in normalen var args das gleiche Problem wie im ursprünglichen Szenario haben, da ein Array mit den Objekten aus den Parametern für den Methodenaufruf konstruiert wird. – MByD
Ich bin nicht ganz sicher, dass ich dir folge und ich verstehe nicht, warum es nicht funktionieren würde, aber ich denke, du hast recht, leider ... – kentcdodds