반응형
이 포스팅에서 작성하는 내용은 더 자바, Java 8 에서 발췌하였습니다.
https://www.inflearn.com/course/the-java-java8
디폴트 메서드(Default Method)
- 인터페이스에 추상메서드를 추가하는 경우, 해당 인터페이스를 구현한 클래스들은 해당 메서드를 재정의해야만 한다.
- 재정의할 필요 없이, 아예 메서드 내용까지 정의해 버리는 메서드를 디폴트 메서드라고 한다.
- 구현한 클래스들은 해당 디폴트 메서드가 추가된 지 모른다. (@implSec 을 이용한 문서화 필요)
- 구현한 클래스들이 해당 디폴트 메서드를 재정의 할 수 있다.
- default 를 붙이면 디폴트 메서드 작성이 가능하다.
...
default void print2() {
System.out.println("PRINT2");
}
자바 8에서 추가된 기본 메서드
Iterator
- forEach() : 해당 요소들을 반복
- spliterator() : 해당 요소들을 반복하되, 나눌 수 있음
Collection
- stream()
- parallelStream()
- removeIf() : 괄호 안을 만족하면 삭제
- spiterator()
Comparator
- reversed() : 순서 반대로
- thenComparing() : 비교하는 기준을 추가
- static reverseOrder() / naturalOrder()
- static nullsFirst() / nullsLast() : null 이 첫 번째로 올지, 마지막으로 올지
- static comparing()
import java.util.ArrayList;
import java.util.List;
import java.util.Spliterator;
public class Example4 {
public static void main(String[] args) {
List<Integer> numList = new ArrayList<>();
numList.add(1);
numList.add(2);
numList.add(3);
// 일반적인 for문
for(int num : numList)
System.out.println(num);
// forEach는 Consumer 함수형 인터페이스가 사용
// 1. 람다표현식 방식
numList.forEach((num)-> System.out.println(num));
// 2. 메서드 레퍼런스 방식
numList.forEach(System.out::println);
// spliterator
Spliterator<Integer> spliterator = numList.spliterator();
while (spliterator.tryAdvance(System.out::println));
// removeIf
numList.removeIf(num->num == 2);
numList.forEach(System.out::println);
}
}
반응형
'BE > Java' 카테고리의 다른 글
[Java 8] Optional (0) | 2023.04.15 |
---|---|
[Java 8] stream (0) | 2023.04.14 |
[Java 8] 람다 표현식과 메서드 레퍼런스 (0) | 2023.04.12 |
[Java 8] Java 8과 함수형 인터페이스 (0) | 2023.04.11 |
[Mockito] Mockito (0) | 2023.04.05 |