부울이 null인지 Java 확인
부울이 null인지 여부를 어떻게 확인합니까? 그래서 "hideInNav"가 null이라는 것을 안다면. 더 이상 실행되지 않도록하려면 어떻게해야합니까? 아래와 같은 것이 작동하지 않는 것 같지만 그 이유는 무엇입니까?
boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
boolean
만 할 수 있습니다 true
또는 false
그것 때문에 기본 데이터 타입 (+이 boolean
변수 디폴트 값입니다 false
). 값 Boolean
을 사용하려면 대신 클래스 를 사용할 수 null
있습니다. 부울은 참조 유형이므로 null
부울 "변수"에 할당 할 수 있습니다 . 예:
Boolean testvar = null;
if (testvar == null) { ...}
A boolean
는 null
자바에 있을 수 없습니다 .
Boolean
그러나 A 는 null
.
boolean
a에 값이 할당되지 않은 경우 (예 : 클래스의 구성원) false
기본값이됩니다.
Java에서는 null
객체 참조에만 적용됩니다. 이후 boolean
원시적 형이다, 그것은 할당 할 수 없습니다 null
.
귀하의 예제에서 컨텍스트를 얻는 것은 어렵지만에서 hideInNav
반환 된 객체에 없으면 getProperties()
(기본값?) 표시 한 (기본값?)이 될 것이라고 생각 false
합니다. 나는 이것이 당신이보고있는 버그라고 생각합니다.는 false
같지 null
않으므로 hideNavigation
빈 문자열을 얻습니까?
코드 샘플에 대한 더 많은 컨텍스트를 통해 더 나은 답변을 얻을 수 있습니다.
될 수있는 유일한 것은 null
비 원시인입니다.
boolean
만 보유 할 수있는 TRUE
또는 FALSE
원시적이다. 메모리 의 TRUE
/ FALSE
는 실제로 숫자 ( 0
및 1
)입니다.
0 = 거짓
1 = 참
따라서 객체를 인스턴스화하면 null이됩니다. String str; // will equal null
반면에 프리미티브를 인스턴스화하면 기본값이 0으로 지정됩니다.
boolean isTrue; // will be 0
int i; // will be 0
boolean
기본 유형이므로 널이 될 수 없습니다.
박스형 Boolean
은 null 일 수 있습니다.
이 함수는 a Boolean
가 아닌 a 를 반환 할 수 boolean
있으므로 결과를 Boolean
-type 변수에 할당하면 null 여부를 테스트 할 수 있습니다.
null
참조 유형에 지정된 값입니다. null
참조가 개체의 인스턴스와 비슷하지 않음을 나타내는 예약 된 값입니다.
A boolean
는 Object의 인스턴스가 아닙니다. 그것은 원시 타입과 같은 int
및 float
. 같은 방식으로 : int x
값이 0
이고 boolean x
값이 false
.
참고 URL : https://stackoverflow.com/questions/15937715/java-check-if-boolean-is-null
'Nice programing' 카테고리의 다른 글
PHP에서 세션과 쿠키의 차이점은 무엇입니까? (0) | 2020.11.29 |
---|---|
Django post_save () 신호 구현 (0) | 2020.11.29 |
게시 요청에서 JAX-RS 클라이언트의 응답 본문 읽기 (0) | 2020.11.29 |
Swift : 제네릭 유형이 프로토콜을 준수하는지 확인 (0) | 2020.11.29 |
Android Studio에서 대상 에뮬레이터를 변경하는 방법은 무엇입니까? (0) | 2020.11.29 |