Dev

[JAVA] 람다식 메서드 참조

마라탕천재 ㅣ 2024. 9. 6. 14:32

자바에서 람다식은 익명 함수를 간결하게 표현하는 기능이다. 이 중 메서드 참조(Method Reference)는 이미 존재하는 메서드를 간단하게 참조할 수 있게 해준다. 람다식을 사용하는 대신 메서드를 직접 참조하여 코드의 가독성을 높일 수 있다. 메서드 참조는 :: 연산자를 사용하며, 주로 세 가지 형태가 있다.

이 중에서 특정 객체 인스턴스 메서드 참조는 거의 사용하지 않는다.

 

 

1.  정적 메서드 참조 (Static Method Reference)

정적 메서드 참조는 클래스의 정적 메서드를 참조하는 방식이다. 람다식에서 매개변수를 정적 메서드로 전달할 때 사용되고, 형식은 클래스명::메서드명 이다.

// 메서드 참조
Function<String, Integer> func = Integer::parseInt;

// 람다식
Function<String, Integer> func = (s) -> Integer.parseInt(s);

 

 

2. 인스턴스 메서드 참조

인스턴스 메서드 참조는 특정 객체의 인스턴스 메서드를 참조할 때 사용된다. 형식은 객체::메서드명이다.

// 메서드 참조
Consumer<String> printer = System.out::println;

// 람다식
Consumer<String> printer = (s) -> System.out.println(s);

 

 

3. 생성자 참조 (Constructor Reference)

생성자 참조는 클래스의 생성자를 호출할 때 사용된다. 형식은 클래스명::new이다. 주로 Supplier, Function 같은 함수형 인터페이스와 함께 사용된다.

// 메서드 참조
Supplier<List<String>> listSupplier = ArrayList::new;

// 람다식
Supplier<List<String>> listSupplier = () -> new ArrayList<>();