JAVA Optional 클래스 사용법 공유
container object which may or may not contain a non-null value.
선택 클래스 구조 선택 속성
optional 클래스 에는 두 개의 속성 이 포함 되 어 있 습 니 다.
클래스 속성: EMPTY 대상 속성: value
EMPTY 속성 은 value 가 null 인 optional 대상 을 저장 하 는 데 사 용 됩 니 다.value 속성 은 비 null 대상 을 저장 하 는 데 사 용 됩 니 다.
옵션 방법
optional 은 두 가지 구조 방법 이 있 는데 모두 private 에 의 해 수식 된다.
private Optional() {
this.value = null;
}
private Optional(T value) {
this.value = Objects.requireNonNull(value);
}
EMPTY 를 초기 화 하 는 데 사용 되 는 무 참 구조 방법.비 null 대상 을 초기 화 하 는 데 사용 되 는 삼 구조 방법 이 있 습 니 다.
구조 방법 이 사유 로 수식 되 기 때문에 optional 이 실례 화 대상 을 클래스 방법 으로 만 호출 할 수 있 습 니 다.optional 은 세 가지 방법 을 제공 합 니 다.
empty: value 가 null 인 optional 대상 of: value 가 null 이 아 닌 optional 대상 of Nullable: value 의 값 은 매개 변수 가 null 인지 여부 에 따라 해당 하 는 optional 대상 을 되 돌려 줍 니 다.
public static Optional empty() {
Optional t = (Optional) EMPTY;
return t;
}
public static Optional of(T value) {
return new Optional<>(value);
}
public static Optional ofNullable(T value) {
return value == null ? empty() : of(value);
}
실례 방법 소개
방법.
매개 변수 유형
반환 형식
설명 하 다.
get
없다
T
value 는 null 로 NoSuchElement Exception 이상 을 던 집 니 다.
isPresent
없다
boolean
value 가 null 이면 false 로 돌아 갑 니 다.
ifPresent
Consumer super T>
void
optional 인 스 턴 스 가 값 이 있 으 면 consumer 를 호출 합 니 다. 그렇지 않 으 면 처리 하지 않 습 니 다.
filter
Predicate super T>
Optional
값 이 존재 하고 제 공 된 서술 어 를 만족 시 키 면 이 값 을 포함 한 optional 대상 을 되 돌려 줍 니 다.그렇지 않 으 면 빈 optional 대상 으로 돌아 갑 니 다.
map
Function super T, ? extends U>
Optional
값 이 존재 하면 이 값 에 제 공 된 mapping 함수 호출 을 실행 하고 optional 대상 으로 돌아 갑 니 다.
flatMap
Function super T, Optional>
Optional
값 이 존재 하면 이 값 에 제 공 된 mapping 함수 호출 을 실행 하고 비 null Optional 대상 으로 돌아 갑 니 다.
orElse
T
T
값 이 있 으 면 되 돌려 줍 니 다. 그렇지 않 으 면 기본 값 을 되 돌려 줍 니 다.
orElseGet
Supplier extends T>
T
값 이 있 으 면 되 돌려 줍 니 다. 그렇지 않 으 면 지정 한 Supplier 인터페이스 에서 생 성 된 값 을 되 돌려 줍 니 다.
orElseThrow
Supplier extends X>
값 이 있 으 면 되 돌려 줍 니 다. 그렇지 않 으 면 지정 한 Supplier 인터페이스 에서 생 성 된 이상 을 던 집 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.