Basic/Java
Optional
HappyWeasel
2020. 11. 30. 23:34
import java.util.Date;
import java.util.Optional;
public class test {
public static void main(String[] args){
Optional<String> cls1 = Optional.empty();
// null 값을 가지고 있는 Optional을 생성
String str = null;
Optional<String> cls2 = Optional.ofNullable(str);
// null값도 허용한다.
// empty, ofNullable은 값을 초기화한다.
System.out.println("cls1 is Present: " + cls1.isPresent());
// null을 가지고 있는지 확인/ true, false 리턴
System.out.println("cls1 is Present: " + cls2.isPresent());
System.out.println("cls1 orElse: "+ cls1.orElse("null"));
// null이면 "null"로 리턴한다.
Data d = new Data();
Data c = null;
Optional<Data> od = Optional.ofNullable(d);
Optional<Data> od2 = Optional.ofNullable(c);
System.out.println("od : " + od.isPresent());
System.out.println("od2 : " + od2.isPresent());
Data od3 = od2.orElseGet(() -> {
Data aa = new Data();
aa.setA("a");
aa.setB("b");
return aa;
});
// lambda로 null일 때 리턴할 객체를 생성할 수 있다.
System.out.println("od3: " + od3.getA() + ", " + od3.getB());
}
}
class Data {
private String a;
private String b;
public void setA(String a){
this.a = a;
}
public void setB(String b){
this.b = b;
}
public String getA(){
return a;
}
public String getB(){
return b;
}
}