split
がnull String[]
を返すことは可能ですか?私は不必要なチェックをせずにコード内で可能な限り防御的になりたいと思っているので興味があります。コードは次のとおりです。
String[] parts = myString.split("\\w");
parts
post post splittingを使用する前にnullチェックを実行する必要がありますか?
Nullを返すことはありません。不明な場合は、常にメソッドのjavadocを確認する必要があります。たとえば、 String#split(String)
は
このメソッドは、2つの引数を持つ
split
メソッドを呼び出すように機能します
...そして String#split(String,int)
はこう言います:
式が入力のどの部分とも一致しない場合、結果の配列には要素が1つだけ、つまりこの文字列が含まれます。
Javadocから、どのような種類の例外が発生する可能性があるか、さらに重要なのはなぜそれらの例外がスローされたかを調べることもできます。また、チェックすべき非常に重要なことの1つは、クラスがスレッドセーフかどうかです。
APIが不明確な場合は、Javaソースコードをダウンロードすることをお勧めします。ここでのすべての答えは答えを伝えるだけですが、実際に自分で確認する必要があります。Java here からのソースコード(ページの下部を見てください)。
ソースコードに従うと、String[] Pattern.split(CharSequence input, int limit)
になります。戻り値は、ArrayList
が呼び出されるnull以外のtoArray
から取得されます。 toArray
はnullを返しません。空のリストの場合、空の配列が返されます。
そのため、最終的には、いいえ、nullをチェックする必要はありません。
Splitメソッドは、メソッドの最初でこれを行うPatter.splitメソッドを呼び出します。
ArrayList<String> matchList = new ArrayList<String>();
最後にmatchList.toArray()を実行して配列を返します。
したがって、nullをテストする必要はありません。