readStringArray(String[] val)
これらの2つの方法をcreateStringArray()
並べて表示すると便利な場合があります。
最初に方法を見てみましょうreadStringArray(String[] val)
。String[]
パラメータとしてaが必要であり、NullPointerException
初期化されていない配列オブジェクト(null
)を渡すと結果が出る可能性があります。また、配列の長さ(N)を正確に知る必要があります。そうしないとRuntimeException
、メソッドからスローされます。
public final void readStringArray(String[] val) {
int N = readInt();
if (N == val.length) {
for (int i=0; i<N; i++) {
val[i] = readString();
}
} else {
throw new RuntimeException("bad array lengths");
}
}
一方、パラメータとしてaを作成して指定createStringArray()
する必要がない場合は、正しい長さのメソッドによっても作成されるため、次のいずれかString[]
について心配する必要はありません。NullPointerException
RuntimeException
public final String[] createStringArray() {
int N = readInt();
if (N >= 0) {
String[] val = new String[N];
for (int i=0; i<N; i++) {
val[i] = readString();
}
return val;
} else {
return null;
}
}
全体として、この基本的な分析の結果として、結論にジャンプして、2番目の方法がより優れて安全であると言うことができます。