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