선택 사항은 Java에서 컨테이너 클래스로 정의되거나 오히려 요소가 하나만있는 컨테이너가 저장됩니다.
널 값이 아닌 값을 포함하거나 포함하지 않을 수있는 컨테이너 객체.
선택적 클래스 구조 선택적 특성
선택적 클래스에는 두 가지 속성이 포함됩니다.
클래스 속성 : 빈 개체 속성 : 값
빈 속성은 값 NULL의 선택적 객체를 저장하는 데 사용됩니다.
값 속성은 널 비 객체를 저장하는 데 사용됩니다.
선택적 방법
옵션에는 두 가지 건설 방법이 있으며, 둘 다 개인별로 수정됩니다.
개인 옵션 () {this.value = null;} 개인 옵션 (t 값) {this.value = objects.requirenonnull (value);}매개 변수가없는 구조 방법은 빈 초기화에 사용됩니다. 매개 변수 생성자는 널이 아닌 객체를 초기화하는 데 사용됩니다.
생성자는 비공개로 수정되므로 선택 사항은 인스턴스화하려는 경우 클래스 메소드를 통해서만 객체를 호출 할 수 있습니다. 선택 사항은 세 가지 클래스 방법을 제공합니다.
빈 : 값 NULL의 선택적 객체를 반환합니다. NULLABLE의 선택적 객체의 널 값을 반환합니다.
public static <t> 옵션 <t> empty () {옵션 <t> t = (옵션 <t>) 비어; return t;} public static <t> 옵션 <t> of (t value) {return new 옵션 <> (value);} public static <t> 옵션 <t> ofnullable (t value) {return value == null? empty () : of (value);}예제 방법 소개
| 방법 | 매개 변수 유형 | 반환 유형 | 설명 | |
|---|---|---|---|---|
| 얻다 | 없음 | 티 | NULL에 대한 값은 NOSUCCHELEMENTEXCEPTIVE 예외를 발생시킵니다 | |
| ispresent | 없음 | 부울 | 값이 null이면 False가 반환됩니다 | |
| ifpresent | 소비자 <? 슈퍼 t> | 무효의 | 선택적 인스턴스에 값이있는 경우 소비자에게 전화하십시오. 그렇지 않으면 처리되지 않습니다. | |
| 필터 | 술어 <? 슈퍼 t> | 선택 사항 <T> | 값이 존재하고 제공된 술어를 만족시키는 경우, 값을 포함한 선택적 객체가 반환됩니다. 그렇지 않으면 빈 선택적 객체가 반환됩니다 | |
| 지도 | 함수 <? 슈퍼 T,? u>를 확장합니다 | 선택 사항 <u> | 값이 존재하면 제공된 매핑 함수 호출이 값에 대해 실행되고 옵션 <U> 객체가 반환됩니다. | |
| 플랫 맵 | 함수 <? Super T, 옵션 <U >> | 선택 사항 <u> | 값이 존재하는 경우 제공된 매핑 함수 호출은 값에 대해 실행되며 널 비 널 옵션 객체를 반환합니다. | |
| ORELSE | 티 | 티 | 값이 있으면 반환하십시오. 그렇지 않으면 기본값을 반환하십시오. | |
| orelseget | 공급 업체 <? t>를 연장합니다 | 티 | 값이있는 경우 값을 반환하고 그렇지 않으면 지정된 공급 업체 인터페이스에서 생성 된 값을 반환합니다. | |
| Orelsethrow | 공급 업체 <? x>를 연장합니다 | <x는 throwable을 확장합니다> | 값이 있으면 반환합니다. 그렇지 않으면 지정된 공급 업체 인터페이스에서 생성 된 예외가 발생합니다. | |