0

実際、これは質問ではありません。すぐに答えを提供するので、同じことに陥ることはありません。

Fieldaがプリミティブかラッパー クラスの 1 つであるかを (リフレクションを使用して) チェックしたかったのです。

cl.isPrimitive()のような比較を使用して確認しc==Boolean.TYPEましたが、デバッガーによると、Boolean.TYPE.toString は「ブール値」ではなく「ブール値」を返します。

4

1 に答える 1

1

Double.TYPE == double.class戻りtrueます。
Double.class != Double.TYPEまた、戻りtrueます。

それら (double.class と Double.TYPE) は、どういうわけか同じことを表しています。理由は聞かないでください...

と比較したい場合はDouble、 と比較してくださいDouble.class
と比較したい場合は、またはdoubleと比較してください。double.classDouble.TYPE

すべてのプリミティブでテストしたわけではありませんが、他のすべてのプリミティブとそのラッパーでも同じはずです。

これにより、少なくとも私がこれを書くのにかかった分だけ誰かが節約できることを願っています.

于 2013-05-09T15:38:29.483 に答える