Логический экземпляр объекта является истинным? - PullRequest
3 голосов
/ 21 февраля 2010

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

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

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

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

Ответы [ 2 ]

4 голосов
/ 21 февраля 2010

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

Логический класс переносит значение примитивный тип логический в объекте. Объект типа Boolean содержит одиночное поле, тип которого является логическим.

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

3 голосов
/ 21 февраля 2010

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

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

...