람다 표현식
함수형 인터페이스
스트림
옵셔널
인터페이스의 기본 메소드
날짜 관련 클래스들 추가
병렬 배열 정렬
StringJoiner 추가
Oprional 이라는 단어는 우리 나라말로 선택적인 이라는 말
선택적으로 뭔가를 처리할 때 사용한다는 것을 예상할 수 있다.
Opeional은 함수형언어인 Haskell과 Scala에서 제공하는 기능을 따온 것이다.
객체를 편리하게 처리하기 위해서 만든 클래스이다. java.util 패키지에 선언되어 있다.
public final class Optional <T>
extends Object
Object 클래스를 확장했고 final클래스로 선언되어 있으며 Generic한 클래스이다 final로 선언되어 있는게 무슨 의미 일까?
final 변수는 변경 불가능하지만 ,final 클래스로 선언했다고 해서 내용 변경이불가능 한 것은 아니다. 대신 추가적인 확장이 불가능 하다.
즉 자식 클래스를 만들 수 없다.
Optional 클래스에 대해서 이해하려면 하나의 깡통이라고 생각하면 된다
이 깡통에 물건을 넣을 수 도 있고 아무 물건이 없을 수 도 있다.
그래서 기본적인 깡통을 만들기 위해서 객체를 생성하지 않는다.
메소드가 하나만 존재하는 인터페이스는 @FunctionalInterface로 선언할 수 있으며ㅣ, 이 인터페이스를 람다 표현식으로 처리할 수 있다.
(매개변수목록) -> 처리식으로 람다를 표현하며, 처리식이 한 줄 이상일 때에는 처리식을 중괄호로 묶을 수 있다.
java.util.function 패키지
java 8에서 제공하는 주요 Functional 인터페이스는 java.util.function 패키지에 다음과 같이 있다.
Predicate : test()라는 메소드가 있으며, 두 객체를 비교할 때 사용하고 boolean을 리턴한다. 추가로 and(), negate(), or()이라는 default 메소드가 구현되어 있으며, isEqual()이라는 static 메소드도 존재한다.
Supplier : get() 메소드가 있으며, ge
Consumer
Function
UnaryOperator
BinaryOperator
'개발 > Spring' 카테고리의 다른 글
Spring 라이브러리 (0) | 2021.03.07 |
---|---|
아파치 톰캣 (0) | 2021.03.07 |
자바 Java 제네릭 Generic (0) | 2021.03.05 |
자바 I/O (0) | 2021.03.05 |
가비지 컬렉터 (0) | 2021.03.01 |