Java/Optional

Java Optional 예시 5(filter)

S.T.Lee 2022. 11. 13. 21:51
package lec10.Optional.ex02;

import java.util.Optional;

public class OptionalMain02 {

	public static void main(String[] args) {
		String testText = String.valueOf("good");
		//String testText = String.valueOf("bad");
		
		Optional<String> s1 = Optional.of(testText).filter(s -> {
			if(s.equals("good")) {
				System.out.println("good이 맞습니다.");
				return true;
			} else {
				System.out.println("bad입니다.");
				return false;
			}
		});
		
		System.out.println("good이 맞는가 :" + s1);
		
		System.out.println("======================================");
		
		Optional<String> a111=  Optional.of(testText).filter(s -> {
			if (s.equals("good")) {
				System.out.println("good이 맞습니다.");
				return true;
			} else {
				System.out.println("bad입니다.");
				return false;
			}
		});
		System.out.println(a111);
		
		System.out.println("======================================");
		
		
		String good  = Optional.of(testText).filter(s -> {
			if (s.equals("good")) {
				System.out.println("good이 맞습니다.");
				return true;
			} else {
				System.out.println("bad입니다.");
				return false;
			}
		}).orElseGet(() -> {
			System.out.println("데이터가 존재하지 않아 실행합니다.");
			return "bad";
		});
		
		System.out.println("orElseGet을 추가합니다.");
		System.out.println("good이 맞는가? " + good);
		
		System.out.println("===============");
		
		int valueDateRange = 10;
		int successRatio = 3;
		int failRatio = 12;
		
		boolean rtnValid1 = Optional.of(successRatio).filter(i -> i < valueDateRange).isPresent();
		boolean rtnValid2 = Optional.of(failRatio).filter(i -> i < valueDateRange).isPresent();
		
		System.out.println("정상인가? " + rtnValid1);
		System.out.println("정상인가? " + rtnValid2);
	}
}