1

このコードフラグメントを実行すると、どちらの側も使用されません。

if (Boolean.class.isAssignableFrom(boolean.class)) {
     uLog.error("Boolean is => boolean");
}
if (boolean.class.isAssignableFrom(Boolean.class)) {
     uLog.error("boolean is <= Boolean");
}

具体的には、リフレクションを使用してパラメータタイプをテストしようとしています。

Type[] pType = m.getGenericParameterTypes();

ブールパラメータの適切なテストを理解できません。

4

2 に答える 2

5

Boolean(オブジェクト)とboolean(プリミティブ)を相互にキャスト/割り当てることはできません。ただし、Java 1.5以降、コンパイラは2つの間で自動的にボックス化/ボックス化解除します。

あなたがするとき:

boolean b =
Boolean bb = b;
b = bb;

Javaコンパイラは自動的に次のように変換します。

boolean b=
Boolean bb = Boolean.valueOf(b);
b = bb.booleanValue();
于 2012-04-09T02:15:58.980 に答える
1

組み込みのタイプbooleanはで表されBoolean.TYPEます。boolean継承できないため、必要ありません。isAssignableFrom問題の型が等しいBoolean.TYPEかどうかを確認するだけで、パラメータの型が組み込まれているかどうかを確認できますboolean

于 2012-04-09T02:16:35.570 に答える