6

Javaでは、のようなプリミティブのクラスリテラルを持つことは有効ですint.classauto boxingこれは、Javaに機能が導入される前でも許可されていましたか?私たちが出てきたオブジェクトに int.classは実際に何が含まれていますか?なぜそれが有効なのですか?

4

2 に答える 2

3

はい、それはリフレクションの重要な部分です(たとえば、intパラメーターを受け取るメソッドの記述)。Voidクラスもあります。

于 2013-02-18T18:54:30.907 に答える
3

intクラスではないので、あまりint.class意味がありません。

その理由は、彼らが安くなり、すべてのタイプClassを表すために1つを使用したためです。したがって、たとえば、を返します。これは、実際にはクラス、プリミティブ、配列、またはvoidを表すことができます。Method.getReturnType()Class

ジェネリックスの前は、タイプの種類があまり多くなかったので、それはまあまあでした。ジェネリックスの後、物事は本当に厄介になります。新しいType階層は古い厄介なものを組み込んでいるため、さらに意味がありませんClass。結果として、のツリーTypesは言語仕様の型のツリーのようには見えません。

于 2013-02-18T18:58:46.727 に答える