3

私が次のものを持っているとしましょう:

int a = 2;
Number b = (Number) a;

System.out.println(b); // Prints 2

http://java.sun.com/docs/books/jls/first_edition/html/15.doc.html#238146は、プリミティブ値を参照型にキャストできない可能性があると述べています。Javaは、プリミティブintから整数を作成してからスーパークラスにキャストすることを知っていますか?Javaはこれを舞台裏でどの程度正確に処理しますか?ありがとう!

4

1 に答える 1

3

このプロセスはオートボクシングと呼ばれます。つまり、コンパイラーはInteger、プリミティブ()ではなくラッパー( int)が必要であることを認識し、変換を自動的に追加します。そして実際にあなたのキャストNumberは必要ありません。

于 2010-03-17T19:08:18.617 に答える