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