戻り値の型が であるかなり複雑なメソッドを持つコードを継承しましたObject
。入力に応じて、このメソッドは、異なる型 ( Integer
、String
、null
など) を返すことが保証されていると言います。を返すことが保証されている場合に、そのメソッドを呼び出していInteger
ます。以下は (明らかに) コンパイルされません:
int result;
result = foo(parameters);
コンパイラは、 からObject
への型の不一致について文句を言いint
ます。ただし、次の行は両方ともコンパイルされます。
result = (int) foo(parameters);
result = (Integer) foo(parameters);
両方の呼び出しが、私がやりたいことを実行することを知っています。short
(さらに言えば、またはへのキャストShort
は機能します。)私の質問は次のとおりです。これら2つのキャスト呼び出しの実装に実際的な違いはありますか?ベストプラクティスまたはパフォーマンスに関して、一方は他方よりも優れていますか? 明確にするために、プリミティブとラッパーの違い、それらのメモリ使用量、能力などを知っています。からのキャストについてのみ質問しています。null
Object
私が理解している限り、両方の呼び出しは同じ手順に従います。1)Object
を an にキャストしInteger
(必要に応じて a をスローします)、2) そのからClassCastException
an を抽出します。int
Integer
重複した質問がありましたら申し訳ありません。Object
私はそれを検索しましたが、 からへのキャストの質問に答える質問は見つかりませんでしたint
。