Логическое значение instanceof объекта истинно?

В свободное время я изучаю Java, и у меня возник вопрос, который я не могу понять. Этот код возвращает истину:

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

Однако я думал, что Boolean был примитивным типом, и когда я пробую эту же логику с любым другим примитивным типом, я получаю ошибку компилятора, в которой говорится: требуется неожиданный тип: найдена ссылка: int

Я уверен, что мне не хватает чего-то маленького. Спасибо за вашу помощь!


person Jon    schedule 21.02.2010    source источник


Ответы (2)


boolean - примитивный тип; java.lang.Boolean - это его класс-оболочка.

Вы заметите, что у всех примитивных типов есть сопутствующие классы-оболочки (например, int и java.lang.Integer и т. Д.)

person duffymo    schedule 21.02.2010

Boolean с заглавными буквами B завершает boolean примитив. Как сказано в документах:

Класс Boolean заключает в себе значение логического примитивного типа в объекте. Объект типа Boolean содержит одно поле с логическим типом.

Autoboxing может неявно перемещаться между такими упакованными типами и соответствующие примитивы.

person Alex Martelli    schedule 21.02.2010