実際、これは質問ではありません。すぐに答えを提供するので、同じことに陥ることはありません。
Field
aがプリミティブかラッパー クラスの 1 つであるかを (リフレクションを使用して) チェックしたかったのです。
cl.isPrimitive()
のような比較を使用して確認しc==Boolean.TYPE
ましたが、デバッガーによると、Boolean.TYPE.toString は「ブール値」ではなく「ブール値」を返します。
実際、これは質問ではありません。すぐに答えを提供するので、同じことに陥ることはありません。
Field
aがプリミティブかラッパー クラスの 1 つであるかを (リフレクションを使用して) チェックしたかったのです。
cl.isPrimitive()
のような比較を使用して確認しc==Boolean.TYPE
ましたが、デバッガーによると、Boolean.TYPE.toString は「ブール値」ではなく「ブール値」を返します。
Double.TYPE == double.class
戻りtrue
ます。
Double.class != Double.TYPE
また、戻りtrue
ます。
それら (double.class と Double.TYPE) は、どういうわけか同じことを表しています。理由は聞かないでください...
と比較したい場合はDouble
、 と比較してくださいDouble.class
。
と比較したい場合は、またはdouble
と比較してください。double.class
Double.TYPE
すべてのプリミティブでテストしたわけではありませんが、他のすべてのプリミティブとそのラッパーでも同じはずです。
これにより、少なくとも私がこれを書くのにかかった分だけ誰かが節約できることを願っています.