람다 표현식
- 임시로 사용할 임시 함수를 위한 표현식
- 자바 기본 문법에선, 함수만 따로 선언할 수 없고 클래스 선언한다음 그 안에 함수를 선언해야 그 전체를 메서드로 구동할 수 가 있는데, 이러한 불편한 점을 보완하기 위해 등장 했다
- (var 1, var 2 . .) -> { 동작 1; 동작2; } 이런 형태!
스트림 API
- 컬렉션에 담긴 데이터를 처리하는 존재로써, 컬렉션에 추가된 메서드의 집합을 의미한다
- 주요 메서드로는 forEach(), filter(), distinct(), map(), collect(), toList() 등이 있다
Optional
- null 이 들어 있는 래퍼런스 변수의 멤버(필드나 메서드) 에 접근하려고 할 때 발생하는 예외인 NullPointerException을 유연하게 해결하기 위해 등장했다
- if문으로 null을 체크하는 코드를 깔끔하게 개선할 수 있다
- 예) var.ifPresent(value -> 동작()); : Optional객체로 정의된 var에 값이 존재하는경우, ifPresent의 인자로 들어간 람다 표현식을 실행하고, 비어있는 경우엔 실행되지 않는다
- 안티패턴 : 디자인패턴과 반대되는 의미로 비효율적인 패턴을 의미한다
- 예) if (str.isPresent() ) { System.out.println(str.get().toUpperCase()); } : isPresent()메서드를 마치 if문처럼 잘못 사용하고 있다!!
- 다음과 같이 개선한다. str.ifPresent((string) -> System.out.println(str.get().toUpperCase()));
'JAVA' 카테고리의 다른 글
equals() (0) | 2024.11.01 |
---|---|
컬렉션 : List (0) | 2024.11.01 |
다형성 : 상속과 인터페이스 (0) | 2024.11.01 |
Cache, RAM, HDD/SSD (0) | 2024.10.14 |
JVM의 영역별 저장 (0) | 2024.06.29 |