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