: 익명 함수
: 함수를 단순하게 표현
: 두 개 이상의 입력값이 있는 함수는 최종적으로 1개의 입력값만 받는 람다 대수로 단순화될 수 있다. (curring)
: 함수의 이름이 없는 함수
: 일급 객체(First Class citizen)라는 특징이 있음
-> 다른 객체들에 적용 가능한 연산을 모두 지원하는 개체, 함수를 값으로 사용할 수도 있고 파라미터로 전달 및 변수에 대입 과 같은 연산이 가능함
: 매개변수 -> 함수 바디
: 함수 바디가 단일 실행문이면 {} 생략 가능
: 함수 바디가 return문으로만 구성되어 있는 경우 {} 생략 불가능
Optional<User> checkUsername = userRepository.findByUsername(username);
if(checkUsername.isPresent()){
throw new IllegalArgumentException("중복된 사용자가 존재합니다.");
}
userRepository.findByUsername(username)
.ifPresent(user -> {
throw new IllegalArgumentException("중복된 사용자가 존재합니다.");
});