Java の "new String(...)" の謎
Java コード サンプルを学習していると、興味深い構文に遭遇するかもしれません。 : "new" 演算子を使用して String オブジェクトに String 定数を代入します。この型破りなアプローチは、次に示すように、文字列定数を直接割り当てる一般的な方法とは異なります。
String s = new String("Hello World");
対
s = "Hello World";
この謎めいた構文に興味をそそられ、その目的を詳しく調べます。
「新しい」の目的String(...)"
"new String(...)" コンストラクターは、引数文字列のコピーを使用して String オブジェクトを初期化します。文字列は不変であり、その内容が変わることがないため、これは通常は必要ありません。ただし、特定のシナリオでは有益な場合があります:
「新しい」の落とし穴String(...)"
残念ながら、"new String(String)" の動作は実装に依存しており、文書化されていません。これは、文字列を操作するときに予期しない結果や潜在的な落とし穴につながる可能性があります。
推奨事項
実装に依存しない動作を確保するには、次の場合に "toCharArray()" を使用することをお勧めします。 String の文字配列のコピーを作成します:
String copy = new String(original.toCharArray());
この代替メソッドでは、文字配列の個別のコピーが作成され、「new String(...)」に関連する予期せぬ事態が回避されます。
以上がJava で「new String(...)」を使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。