6

Objecttype のインスタンスをdouble にキャストする必要がある場合、次のうちどれが優れていますか?またその理由は?

Double d = (Double) object;

または

double d = (double) object;

4

1 に答える 1

17

object違いは、最初の形式は null の場合に成功し、2 番目の形式はNullPointerException. したがって、objectnull であることが有効な場合は最初の値を使用し、それがエラー状態を示している場合は 2 番目の値を使用します。

これ:

double d = (double) object;

次と同等です。

Double tmp = (Double) object;
double t = tmp.doubleValue();

(または((Double)object).doubleValue()、わかりやすくするために 2 つの操作を分離するのが好きです。)

へのキャストは Java 7 でのみ有効であることに注意してください- Java 7 言語拡張ページdoubleからは明らかではありませんが、それが本当である理由は明らかではありません。

于 2013-04-01T11:29:03.323 に答える