Я немного поучаствовал в этом, и я понимаю, что в java вы не можете изменить исходное значение заданных параметров и ожидать, что они будут сохраняться после завершения метода. Но я бы очень хотел узнать, как это сделать. Может ли кто-нибудь дать мне несколько указателей на то, что я могу сделать, чтобы этот метод работал? Благодарю.Установить параметры постоянных значений
/**
* 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
Так что я должен установить его в массив, как упоминалось несколько человек, и он прекрасно работает, если я построить массив, в первую очередь, но если я не то его не работает.
Вот фиксированный метод:
/**
* 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] = "";
}
}
}
Вот вызов, где он работает:
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]);
}
Вот вызов, где он не работу, но я хочу, чтобы:
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);
Результат:
q: null
x: null
q: null
x: null
Есть ли способ для меня, чтобы не построить массив в первую очередь? – kentcdodds
Вам нужно его построить, поскольку в обычных аргументах var у вас есть та же проблема, что и в исходном сценарии, поскольку для вызова метода построен массив с объектами из параметров. – MByD
Я не совсем уверен, что следую за вами, и я не понимаю, почему это не сработает, но я думаю, что вы правы, к сожалению ... – kentcdodds