리루
- 비어있을 수 있고, 어떤 값을 갖고 있을 수 있는 컨테이너 인스턴스 - null 체크를 하지 않으면 Null Pointer Exception이라는 문제가 발생 할 경우가 잦아질 수 있다. - 매번 Null check 할 수 없고 Human error가 있을 수 있다. - Null을 반환할 수 있는 상황 자체도 문제다. 방법 1. - null이 반환될 수 있는 코드에서 미리 null check를 해서 client 코드에 편의를 제공할 수 있다. 하지만 로직상 자꾸 exception 처리를 넣는건 좋은 습관이 아니다. 방법 2. - null을 그냥 반환하고 client 코드에서 null check를 한다. - 리턴 값으로만 Optional로 사용하길 권장된다. (매개변수 등으로 사용가능하지만 호출하는 쪽..
Stream -https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html - Sequence of elements supporting sequential and parallel aggregate operations. - 연속된 데이터를 처리하는 Operation의 모임 - 데이터를 담는 저장소가 아니라 데이터를 소스로 사용해서 어떠한 처리를 하는 것 - Functional in nature : Stream으로 전달받은 데이터 다체를 변경하는게 아니라 또다른 Stream을 반환한다. - 들어오는 데이터가 무제한일 수 있다. - 들어오는 데이터가 무제한일 때 Short Circuit 메소드를 사용해 제한할 수 있다. - Stream 이 제공..
Functional Interface : Any interface with a SAM(Single Abstract Method) is a functional interface, and its implementation may be treated as lambda expressions. - Java8에서는 Interface에 static method / default method가 사용가능하다. 이러한 추가적인 함수들이 있더라도 SAM이 하나만 존재한다면 Functional Interface라고 할 수 있다. - `void do something();` 앞에는 `abstract`가 생략되어 있다고 볼 수있다. - Abstract Method가 복수개가 되면 컴파일에러가 발생한다.(`@FunctionalIn..