일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 테스트메소드
- 커밋메세지수정
- 네이티브쿼리
- 포트
- 메소드명
- 서브쿼리
- 추후정리
- 테스트
- 참조키
- 적용우선순위
- MySQL
- WeNews
- appspec
- 2 > /dev/null
- application.yml
- EC2
- 검색
- ubuntu
- 예약
- subquery
- AuthenticationEntryPoint
- appspec.yml
- 메세지수정
- 컨테이너실행
- 외부키
- Query
- docker명령어
- querydsl
- ㅔㄴ션
- foreignkey
Archives
- Today
- Total
제뉴어리의 모든것
함수형 인터페이스에 대해 새롭게 알게된 사실 본문
@FunctionalInterface 이 붙은 인터페이스인
함수형 인터페이스에 대해 새롭게 알게 된 사실이 있다.
물론 @FunctionalInterface 이 안 붙어도 함수형 인터페이스의 조건은 만족한다.
명시적으로 알려서 혹여나 할 수 있는 실수를 방지하기 위함이다.
함수형 인터페이스는
단순히 람다를 사용하기 위해
단 하나의 추상 메소드만 가지고 있는 인터페이스로만 알고 있었다.
아래의 Comparator 인터페이스의 소스를 보던 중
@FunctionalInterface
public interface Comparator<T> {
:
:
:
}
추상 메소드 한개만 정의된것이 아니라..
다양한 메소드가 존재했다.
그리고 명시적으로 @FunctionalInterface 가 쓰였음에도 문제가 없었고..
이유는
default 메소드와, static 메소드는 함수형 인터페이스에 몇개가 있든 상관이 없었다..
그리고
Object 클래스가 가지고 있는
equals(Object), hashCode() 같은 메소드 또한 Object에 이미 정의가 되어 있으므로 들어가도 상관이 없다고 한다..
위에 사항들을 인지하고 내부 코드들을 해석하도록 하자.
그런데 내가 알기로는 interface는 class와 달리 최고 조상같은 개념이 없다고 알고있는데.. 어떻게가능한거지?
참조 : https://www.scaler.com/topics/functional-interface-in-java/
https://stackoverflow.com/questions/51966837/equalsobject-and-functional-interfaces
'JAVA' 카테고리의 다른 글
컬렉션 프레임워크란? (0) | 2023.05.14 |
---|---|
[JAVA] Gson.toJson 시 null 인 property 도 포함시켜 반환하도록 하기 (0) | 2022.10.31 |
HttpServletRequest 객체의 uri에서 path 부분만 얻기 (0) | 2022.10.05 |
제네릭(Generic) 사용한 클래스를 @Builder로 객체 생성하기 (1) | 2022.09.19 |
IntStream과 Stream<Integer>의 차이 (0) | 2022.08.25 |