Jon
Jon

Reputation: 6056

Boolean instanceof Object is true?

I've been learning Java in my spare time and have a quick question I can't seem to figure out. This code returns true:

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

However, I thought Boolean was a primitive type and when I try this same logic with any other primitive type I get a compiler error that says: unexpected type required: reference found: int

I'm sure there's just something small I'm missing. Thanks for your help!

Upvotes: 3

Views: 4374

Answers (2)

Alex Martelli
Alex Martelli

Reputation: 882701

Boolean with uppercased initial B wraps a boolean primitive. As the docs say:

The Boolean class wraps a value of the primitive type boolean in an object. An object of type Boolean contains a single field whose type is boolean.

Autoboxing can implicitly move between such boxed types and the corresponding primitives.

Upvotes: 4

duffymo
duffymo

Reputation: 309008

boolean is a primitive type; java.lang.Boolean is its wrapper class.

You'll notice that all the primitive types have companion wrapper classes (e.g., int and java.lang.Integer, etc.)

Upvotes: 3

Related Questions