우리는 JdbcTemplate
을 사용하는 과정에서 익명 클래스
와 람다식
이라는 자바 문법을 사용했습니다. 익명 클래스
는 자바의 초창기부터 있던 기능이고, 람다식
은 자바 8에서 등장한 기능입니다. 다음 키워드를 사용해 몇 가지 블로그 글을 찾아보세요! 아래 질문을 생각하며 공부해보면 좋습니다! 😊
[키워드]
익명 클래스 / 람다 / 함수형 프로그래밍 / @FunctionalInterface
/ 스트림 API / 메소드 레퍼런스
-
익명 클래스
- 이름이 없는 클래스
- 프로그램에서 일시적으로 한번만 사용되는 객체(일회용 클래스)
- 주로 인터페이스나 추상 클래스의 일회성 구현을 위해 사용됨
- 클래스의 정의와 객체 생성을 동시에 할 수 있음
-
람다
- 함수를 보다 단순하게 표현하는 방법 - 함수를 하나의 식으로 표현하는 것
- 함수를 람다식으로 표현하면 메소드의 이름이 없기 때문의 익명 함수의 한 종류
- 자바 8에서 도입된 함수형 인터페이스의 인스턴스를 표현하는 방식
-
함수형 프로그래밍
- 데이터를 함수로 연결하는 것을 중심으로 사고하며 프로그래밍하는 것
- 대입문을 사용하지 않고, 작은 문제를 해결하기 위해 함수를 사용하는 프로그래밍
- 함수를 1급 객체로 관리하여 함수를 파라미터나 반환값으로 사용 가능
-
@FunctionalInterface
- 함수형 인터페이스를 명확하게 정의하고, 그 인터페이스가 함수형 인터페이스의 조건을 충족하는지 컴파일할 때 검증하도록 하는 어노테이션
- 해당 어노테이션을 사용하면 자바 컴파일러가 해당 인터페이스가 함수형 인터페이스의 조건을 만족하는지 확인하고, 만족하지 못하면 컴파일 오류를 발생시킴
- 함수형 인터페이스: 단 하나의 추상 메서드만을 가지는 인터페이스. 디폴트 메서드와 정적 메서드는 여러 개 포함 가능
-
스트림 API
- 데이터 소스(컬렉션, 리스트, 셋, 파일 등)를 조작 및 가공, 변환하여 원하는 값으로 반환해주는 인터페이스
- 스트림 api는 원본 데이터를 조회해 별도의 stream 객체를 생성하기 때문에 원본의 데이터를 변경하지 않음
- 일회용이기 때문에 한 번 사용이 끝나면 재사용이 불가능
- 내부 반복으로 작업을 처리하기 때문에 간결한 소스코드의 작성을 가능하게 함
-
메소드 레퍼런스
- 기존의 메소드를 참조하여 람다 표현식을 더 간결하고 읽기 쉽게 만드는 기능
- 정적 메소드 참조
- 정적 메소드를 메소드 레퍼런스로 사용하는 것
클래스::메소드
- 특정 객체의 인스턴스 메소드 참조
- 특정 객체의 인스턴스 메소드를 메소드 레퍼런스로 사용하는 것
객체::메소드
- 임의 객체의 인스턴스 메소드 참조
- 임의 객체의 인스턴스 메소드를 메소드 레퍼런스로 사용하는 것
클래스::메소드
- 생성자 참조
- 생성자를 메소드 레퍼런스로 사용하는 것
클래스::new
[질문]