여기서 설명되는 Lamda와 oprional의 정의는 "회원정보 보기 및 수정"과 "게시글 JPA" 테스트에 사용됩니다.
lamda 표현식은 자바 8부터 도입된 기능으로, 익명 함수를 간결하게 표현할 수 있는 방법입니다.
Lamda 표현식은 주로 함수형 인터페이스와 함게 사용됩니다.
intergace Calculator{
int add(int a, int b);
}
@Test
public void test() {
Calculator cal = (a,b) -> a+b;
int result = cal.add(1,2);
System.out.println(reslut);
}
자바의 Optional은
값이 존재하지 않을 수 있는 상황에서 null을 다루는데 유용한 클래스입니다.
Optional은 주로 NullPointerException을 방지하고 코드를 안전하게 만들기 위해 사용됩니다.
optional을 선물박스라고 생각하면 이해하기 쉽습니다.
@Test
public void test(){
Optional<String> op = Optional.ofNullable(null);
// optional = 선물박스
String name = op.get()
// 선물박스에서 값 꺼내쓰기 (이 경우에는 null값을 꺼냄)
System.out.println(name)
//null값을 가져오려 해서 오류발생
}
위와 같은 상황은 Optional이 null값을 담을 수 있기에 발생한 오류입니다.
op.get()
을 하기 전까지는 선물 상자 안에 객체를 담아두었다가 .get()
을 통해 선물 상자를 열고 안에 있는 값을 참조 합니다.
따라서 오류를 방지하기 위해서 아래와 같은 Lamda식을 사용할 수 있습니다.
@Test
public void test(){
Optional<String> op = Optional.ofNullable(null);
String name = op.orElseThrow(() => new RuntimeException("이름 없음");
//만약 op 안의 값이 null이라면 trow를 통해 에러 예외처리.
//그렇지 않다면 op안의 값이 name에 담길것이다.
System.out.println(name);