web-dev-qa-db-ja.com

Double.valueOf(s)vs. Double.parseDouble

オブジェクトをdoubleにキャストすると、これらの両方のメソッドに気付きました。私はparseDoubleが1.2から入っていることがわかります。本質的にvalueOf(s)と同じ機能を実行するのに、なぜこのメソッドを追加するのですか?

34
Will

parseDouble()は、プリミティブなdouble値を返します。 valueOf()は、ラッパークラスDoubleのインスタンスを返します。 Java 5がオートボクシングを導入する前に、それは非常に重要な違いでした(そして多くの人はまだそうだと主張します)。

41

それは同じではないからです。 valueOf()は、必要のないDoubleオブジェクトを作成します。 parseDouble()はサポートしていません。オートボクシングを使用すると、valueOf(String)になりますが、これは不要になりましたが、下位互換性があります。

14
Peter Lawrey

値(プリミティブ)だけが必要な場合は、parseDouble(String s)を使用してください。コストは低くなります。 valueOf(String s)は、プリミティブなdouble値をラップするDoubleクラスを返します。

5
Victor Martinez