私はそれを少し読んでいます。私は、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 argsでは、パラメータのオブジェクトを持つ配列がメソッド呼び出しのために構築されるため、元のシナリオと同じ問題が発生するため、これを構築する必要があります。 – MByD
私はあなたに追いついていると私は確信していないと私はそれが動作しない理由を理解していないが、私はあなたが残念ながら正しいと思う... – kentcdodds