実際、これは質問ではありません。すぐに答えを提供するので、同じことに陥ることはありません。
Fieldaがプリミティブかラッパー クラスの 1 つであるかを (リフレクションを使用して) チェックしたかったのです。
cl.isPrimitive()のような比較を使用して確認しc==Boolean.TYPEましたが、デバッガーによると、Boolean.TYPE.toString は「ブール値」ではなく「ブール値」を返します。
実際、これは質問ではありません。すぐに答えを提供するので、同じことに陥ることはありません。
Fieldaがプリミティブかラッパー クラスの 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.classDouble.TYPE
すべてのプリミティブでテストしたわけではありませんが、他のすべてのプリミティブとそのラッパーでも同じはずです。
これにより、少なくとも私がこれを書くのにかかった分だけ誰かが節約できることを願っています.