일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Component
- 스프링 부트
- spring
- git #gitlab #github
- 1
- 스프링
- zepettoworld.com
- DispatcherServlet
- Bean
- 오토와이어드
- layout #thymeleaf #화면분할
- autowired
- Today
- Total
기록과 정리
기본 메서드와 스태틱 메서드 본문
이 글은 백기선님의 '더 자바, Java 8' 강의를 참고하였습니다.
https://www.inflearn.com/course/the-java-java8/lecture/48041?speed=1&tab=curriculum
기본 메서드 (default Methods)
인터페이스의 메소드 선언이 아닌 구현체를 제공하는 방법. 보통 구현체라함은 인터페이스를 구현 받는 클래스 내부에 위치하지만 인터페이스에 위치한 것을 말한다.
가령, printName()을 만들고 개발 도중에 다른 기능을 하는 구현체를 추가해주어야 할 때, printNameUpperCase()를 넣으면 실제 구현체에서는 해당 메서드를 오버라이딩을 하지 않았기 때문에 컴파일 에러가 날 것이다.
default 키워드로 위와 같이 특정 기능을 제공을 할 수 있다. 구현체가 모르게 추가된 기능에 따라 그만큼 리스크가 따르기ㄷ 떄문에 @implSpec과 같은 자바독 태그를 사용하여 문서화를 하도록 하자.
참고로 Object가 제공하는 기능 (equasl , hasCode)는 기본 메서드로 제공될 수 없다.
인터페이스에서 기본 메서드가 만들어져도 구현체에서는 얼마든지 재구현이 가능하다.
스태틱 메서드
해당 타입 관련 헬퍼 또는 유틸리티 메소드를 제공할 때, 인터페이스에서 스테틱 메서드를 사용 가능하다.
자바 8에서 추가한 기본 메소드
대표적으로 Itrable의 forEach, spliterator가 있다.
forEach
forEach를 사용하면 iterator를 사용하는 것보다 간결하게 Collection을 출력 및 순회가 가능하다.
spliterator
쪼갤 수 있는 기능이 붙어 있는 iterator라고 생각하면 된다. 단, 순서에는 상관하지 않을 때, 사용하면 유용하다.
그외 removeIf , comparator
해당하는 조건을 제외하는 removeIf , sort에 유용한 comparator 등이 있다.
'IT > Java' 카테고리의 다른 글
Java Optional (0) | 2021.08.23 |
---|---|
Java8 Stream API (스트림 API) (0) | 2021.08.12 |
Iterator/ListIterator/Enumeration 란? (0) | 2021.07.30 |
람다표현식&메소드 레퍼런스 (0) | 2021.07.26 |
Java 함수형 인터페이스 (0) | 2021.07.20 |