Java8 Optional 상세 정보

Java8에서는 빈 값에 대한 작업 클래스를 제공합니다.Optional.다음은 그의 방법을 소개한다.
정적 방법:
Optional.of (T) 는 Optional 패키지의 대상을 되돌려줍니다. 전송된 파라미터가 비어 있으면 빈 포인터 이상을 던집니다.
Optional.ofNullable (T) 는 Optional 패키지의 대상을 되돌려줍니다. 파라미터가 비어 있으면 비어 있는 Optional 대상을 되돌려줍니다.
Optional.empty()가 빈 Optional 객체로 반환됩니다.
인스턴스 메서드:
isPresent () 가 존재하는지 여부입니다. 값이 비어 있으면false를 되돌려줍니다. 그렇지 않으면true를 되돌려줍니다.
get () 값이 되돌아오는 값이 있습니다. 그렇지 않으면 이상을 던집니다.
map () 값이 존재하는 경우 사용자 정의 방법을 실행합니다. 매개 변수는 값이고, 임의의 형식의 대상이 될 수 있습니다.
filter () 값이 존재하는 경우 사용자 정의 방법을 실행합니다. 매개 변수는 값이고,true 또는false로 되돌아옵니다.
flatMap () 은 맵 방법과 기본적으로 일치합니다. 다른 것은 되돌아오는 형식은 가치 있는 형식일 뿐입니다.
코드는 다음과 같습니다.
package com.example.thread;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Optional;
import java.util.Random;

public class OptaionalTest {
private static Logger logger = LoggerFactory.getLogger(OptaionalTest.class);

public static void main(String[] args) {
OptaionalTest obj = new OptaionalTest();
Optional optional = obj.getNum();
logger.info("optional.isPresent():" + optional.isPresent());
optional.ifPresent((val1) -> {//
logger.info("optional.ifPresent():" + optional.get());
logger.info("optional.get():" + optional.get());
String map = optional.map((intVal) -> (intVal + 1000) + "").get();//map .
logger.info("optional.map():" + map);
optional.filter((intVal) -> {//
if (intVal > 25) {
logger.info("optional.filter()>25:" + intVal);
return true;
}
logger.info("optional.filter()<=25:" + intVal);
return false;
});
Optional a = optional.flatMap((intVal) -> Optional.ofNullable(intVal + 1));// Optional
});
logger.info("optional.orElse:" + optional.orElse(1));
logger.info("" + optional.orElseGet(() ->

{
logger.info("optional.orElseGet:" + -1);
return -1;
}));
}

Optional getNum() {
Integer num = new Random().nextInt(100);
if (num < 50) {
return Optional.empty();
}
return Optional.of(num);
}
}

좋은 웹페이지 즐겨찾기