Проверка Java, если логическое значение null
Как вы проверяете, имеет ли значение boolean значение null или нет? Поэтому, если я знаю, что "hideInNav" имеет значение null. Как остановить
это от дальнейшего выполнения? Что-то вроде нижнего, похоже, не работает, но почему?
boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
Ответы
Ответ 1
boolean
может быть только true
или false
, потому что это примитивный тип данных (+ a boolean
значение по умолчанию для переменных false
). Вместо этого вы можете использовать класс boolean
, если хотите использовать значения null
. Boolean является ссылочным типом, поэтому вы можете назначить null
логической переменной. Пример:
Boolean testvar = null;
if (testvar == null) { ...}
Ответ 2
A boolean
не может быть null
в java.
A boolean
, однако, может быть null
.
Если a boolean
не назначено значение (например, член класса), по умолчанию оно будет false
.
Ответ 3
В Java null
применяется только к объектным ссылкам; поскольку boolean
является примитивным типом, его нельзя назначить null
.
Трудно получить контекст из вашего примера, но я предполагаю, что если hideInNav
не находится в объекте, возвращаемом getProperties()
, указанное вами значение (значение по умолчанию?) будет false
. Я подозреваю, что это ошибка, которую вы видите, поскольку false
не равно null
, поэтому hideNavigation
получает пустую строку?
Вы можете получить более качественные ответы с немного более контекстом для вашего образца кода.
Ответ 4
Единственное, что может быть null
, является непримитивным.
A boolean
, который может содержать только TRUE
или FALSE
, является примитивным. TRUE
/FALSE
в памяти фактически являются числами (0
и 1
)
0 = FALSE
1 = TRUE
Итак, когда вы создаете экземпляр объекта, он будет равен нулю
String str; // will equal null
С другой стороны, если вы инициализируете примитив, ему будет присвоено значение 0 по умолчанию.
boolean isTrue; // will be 0
int i; // will be 0
Ответ 5
boolean
является примитивным типом и поэтому не может быть нулевым.
Его тип в коробке boolean
может быть нулевым.
Функция, вероятно, возвращает boolean
в отличие от boolean
, поэтому присвоение результата переменной boolean
-type позволит вам проверить недействительность.
Ответ 6
null
- это значение, присвоенное ссылочному типу. null
- зарезервированное значение, указывающее, что ссылка не похожа на экземпляр объекта.
A boolean
не является экземпляром объекта. Это примитивный тип, например int
и float
. Точно так же: int x
имеет значение 0
, boolean x
имеет значение false
.
Ответ 7
Ну, кстати, как я могу проверить пустое значение логического?
Ответ 8
На самом деле примитивные типы данных по умолчанию имеют значение null для локальных переменных.