3

私は暇なときにJavaを学んでいて、理解できないような簡単な質問があります。このコードはtrueを返します:

Boolean testBool = true;
Boolean test = testBool instanceof Object;
System.out.println(test);

ただし、ブール値はプリミティブ型だと思っていたので、他のプリミティブ型でこれと同じロジックを試してみると、次のようなコンパイラエラーが発生します。予期しない型が必要です:参照が見つかりました:int

私が見逃している小さなものがあると確信しています。ご協力いただきありがとうございます!

4

2 に答える 2

4

Boolean大文字のイニシャルでプリミティブをB ラップします。ドキュメントbooleanが言うように:

Booleanクラスは、プリミティブ型booleanの値をオブジェクトにラップします。ブール型のオブジェクトには、ブール型の単一のフィールドが含まれています。

自動ボクシングは、そのようなボックス化されたタイプと対応するプリミティブの間を暗黙的に移動できます。

于 2010-02-21T15:01:08.080 に答える
3

ブール値はプリミティブ型です。java.lang.Booleanはそのラッパークラスです。

すべてのプリミティブ型にコンパニオンラッパークラス(たとえば、intやjava.lang.Integerなど)があることに気付くでしょう。

于 2010-02-21T14:59:51.577 に答える