약간의 내용을 읽었습니다. 자바에서는 주어진 매개 변수의 원래 값을 변경할 수 없으며 메서드가 끝난 후에도이를 유지할 것으로 예상됩니다. 하지만이 작업을 수행하는 좋은 방법을 알고 싶습니다. 누군가이 방법을 사용하기 위해 내가 할 수있는 것에 대한 조언을 해줄 수 있습니까? 감사.매개 변수를 영구적 인 값으로 설정
/**
* 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 = "";
}
}
}
편집
그래서 여러 사람이 언급 한 바와 같이 배열로 설정해야하고, 내가 처음부터 배열을 구성하는 경우는 잘 작동하지만, 그때 그것을하지 않으면 작동하지 않습니다.
이/**
* 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 args에서는 매개 변수의 개체가있는 배열이 메서드 호출을 위해 구성되기 때문에 원래 시나리오와 동일한 문제가 발생하므로 구성해야합니다. – MByD
나는 내가 너를 따라 갔는지 모르겠다. 왜 안되는 지 이해할 수는 없지만, 네가 맞다고 생각한다. ... – kentcdodds