이 기사는 Java 8의 새로운 기능인 Optional(코드 포함)의 사용법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
Optional
1. of
null이 아닌 값에 대해 Optional을 생성합니다. 값이 null이면 NullPointerException이 발생합니다.
Optional<integer> optional = Optional.of(13); System.out.println(optional)</integer>
2. 지정된 값에 대해 Optional을 생성합니다. null이면 빈 Optional을 반환합니다.
Optional<string> optional2 = Optional.ofNullable(null); System.out.println(optional2); optional2 = Optional.ofNullable("aaa"); System.out.println(optional2);</string>
3.isPresent
값이 존재하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
Optional<string> optional2 = Optional.ofNullable(null); System.out.println(optional2); System.out.println(optional2.isPresent()); optional2 = Optional.ofNullable("aaa"); System.out.println(optional2); System.out.println(optional2.isPresent());</string>
4. get
Optional에 값이 있으면 반환하고, 그렇지 않으면 NoSuchElementException을 발생시킵니다.
optional2 = Optional.ofNullable("aaa"); System.out.println(optional2); System.out.println(optional2.isPresent()); System.out.println(optional2.get());
5. ifPresent
Optional 인스턴스에 값이 있으면 소비자에게 전화하세요. 그렇지 않으면 처리가 수행되지 않습니다. Hermit은 그들 사이에서 무효 판결을 내 렸습니다.
public static void main(String[] args) { String str1 = "hello"; String str2 = null; Optional<string> optional1 = Optional.ofNullable(str1); Optional<string> optional2 = Optional.ofNullable(str2); optional1.ifPresent(str->System.out.println(str.length())); optional2.ifPresent(str-> System.out.println(str.length())); }</string></string>
6, orElse
값이 있으면 이를 반환하고, 그렇지 않으면 지정된 다른 값을 반환합니다.
public static void main(String[] args) { String str1 = "hello"; String str2 = null; Optional<string> optional1 = Optional.ofNullable(str1); Optional<string> optional2 = Optional.ofNullable(str2); System.out.println(optional1.orElse("默认字符串")); System.out.println(optional2.orElse("默认字符串")); }</string></string>
7. orElseGet
orElseGet은 orElse 메소드와 유사하지만 차이점은 얻은 기본값에 있습니다. orElse 메소드는 들어오는 값을 기본값으로 사용합니다. orElseGet 메소드는 기본값
public static void main(String[] args) { Integer i = 20; Optional<integer> op = Optional.ofNullable(i); System.out.println(op.orElseGet(()->0)); System.out.println(Optional.ofNullable(null).orElseGet(()->0)); }</integer>
8, orElseThrow
을 생성하기 위해 공급자 인터페이스의 구현을 허용할 수 있습니다. 값이 있으면 반환되고 그렇지 않으면 예외가 발생합니다. 공급자 인터페이스에 의해 생성된 메시지가 발생합니다.
public static void main(String[] args) { // 自己指定异常 System.out.println((Optional.ofNullable("a").orElseThrow(()->new IndexOutOfBoundsException()))); System.out.println((Optional.ofNullable(null).orElseThrow(()->new IndexOutOfBoundsException()))); }
9. map
map은 값이 있는 상황을 처리합니다. 값이 있으면 map 매개변수에서 함수를 실행하여 반환 값을 가져오고, 그렇지 않으면 빈 Optional을 반환합니다.
public static void main(String[] args) { List<string> list = new ArrayList<string>(){ { add("aaa"); add("bbb"); add(null); } }; list.stream().forEach(temp ->{ Optional<string> opt = Optional.ofNullable(temp); System.out.println(opt.map(n -> { return n.toUpperCase(); }).orElse("Nothing")); }); // 简写为如下形式 list.stream().forEach(temp->{ System.out.println(Optional.ofNullable(temp).map(n->n.toUpperCase()).orElse("Nothing")); }); }</string></string></string>
10. flatMap
값이 있으면 매핑 함수를 실행하여 Optional 유형 반환 값을 반환하고, 그렇지 않으면 빈 Optional을 반환합니다. flatMap은 map(Funtion) 메소드와 유사하지만, 차이점은 flatMap의 매퍼 반환 값이 Optional이어야 한다는 것입니다. 호출이 끝나면 flatMap은 결과를 Optional로 캡슐화하지 않습니다. 콘텐츠
public static void main(String[] args) { Optional<string> opt1 = Optional.ofNullable("aaa"); Optional<string> opt2 = Optional.ofNullable(null); System.out.println(opt1.flatMap(n->{ return Optional.ofNullable(n.toUpperCase()); }).orElse("还会没有吗")); System.out.println( opt2.flatMap(n->{ return Optional.ofNullable(n.toUpperCase()); }).orElse("还会没有吗")); }</string></string>
11, 필터
를 추가할 수 있습니다. 값이 있고 어설션 조건이 충족되면 해당 값을 포함하는 Optional이 반환되고, 그렇지 않으면 빈 Optional이 반환됩니다.
public static void main(String[] args) { Optional<string> opt1 = Optional.ofNullable("aabbbbaa"); Optional<string> opt2 = Optional.ofNullable(null); System.out.println(opt1.filter(value->value.length()>6)); System.out.println(opt2.filter(value->value.length()>6)); }</string></string>
자, 여기가 Java 8의 새로운 기능인 Optional이 소개되는 곳입니다.
위 내용은 Java8 신기능 사용법 소개 선택사항(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사에서는 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 및 Gradle을 사용하여 접근 방식과 최적화 전략을 비교합니다.

이 기사에서는 Maven 및 Gradle과 같은 도구를 사용하여 적절한 버전 및 종속성 관리로 사용자 정의 Java 라이브러리 (JAR Files)를 작성하고 사용하는 것에 대해 설명합니다.

이 기사는 카페인 및 구아바 캐시를 사용하여 자바에서 다단계 캐싱을 구현하여 응용 프로그램 성능을 향상시키는 것에 대해 설명합니다. 구성 및 퇴거 정책 관리 Best Pra와 함께 설정, 통합 및 성능 이점을 다룹니다.

이 기사는 캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA를 사용하는 것에 대해 설명합니다. 잠재적 인 함정을 강조하면서 성능을 최적화하기위한 설정, 엔티티 매핑 및 모범 사례를 다룹니다. [159 문자]

Java의 클래스 로딩에는 부트 스트랩, 확장 및 응용 프로그램 클래스 로더가있는 계층 적 시스템을 사용하여 클래스로드, 링크 및 초기화 클래스가 포함됩니다. 학부모 위임 모델은 핵심 클래스가 먼저로드되어 사용자 정의 클래스 LOA에 영향을 미치도록합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
