[ Spring / SW 캠프] Lamda식과 Optional 객체

김문경·2023년 11월 14일
0

SW 백엔드 캠프

목록 보기
2/4

여기서 설명되는 Lamda와 oprional의 정의는 "회원정보 보기 및 수정"과 "게시글 JPA" 테스트에 사용됩니다.



1. Lamda

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);
}



2.Optional

자바의 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);

0개의 댓글