ドキュメントの問題は、受け入れられた回答によって対処されています。
このコメントに返信したいだけです...これがおそらくあなたの問題の根源です。
ただし、null を渡す意味がないことを前提としています。多くのデータ メンバー フィールドを持ち、そのうちのいくつかは文字列であり、null の場合もそうでない場合もある Object をコピーするとします。その場合、String(String) に null を返してもらいたい、具体的には、null 値をコピーしてもらいたい。
それは不可能です。JLS は、new
操作が ではなく新しいオブジェクトを生成することを具体的に述べていnull
ます。
「オブジェクトを作成して返す」ことができるようにしたい場合null
は、このロジックを何らかのファクトリ メソッドに埋め込む必要があります。例えば
String myNewString(String s) {
return s == null ? s : new String(s);
}
しかし、ほとんどの場合、Java でa をコピーすることString
は不必要で無駄が多いことにも注意してください。これは、アプリケーションが文字列のオブジェクト ID を明確に利用している場合にのみ行う必要があります。つまり、==
文字列オブジェクトを比較するために使用し、 と比較する同じ文字を持つ文字列に依存false
します。(それを必要とするアプリケーションはかなりまれです...)