카테고리 없음

자바 메소드 레퍼런스란

_soboro 2024. 5. 1. 11:24

자바에서 메소드 레퍼런스는 특정 메소드만을 호출하는 람다 표현식을 더 간단하게 표현할 수 있는 방법입니다. 메소드 레퍼런스는 함수형 인터페이스의 구현을 위해 이미 정의된 메소드를 참조하는 데 사용됩니다. 이 구문은 코드를 더 간결하게 만들어주며, 가독성을 향상시키는 데 도움을 줍니다.


정적 메소드 참조 

1. 클래스의 정적 메소드를 참조:
문법: 클래스명::메소드명

Arrays.sort(numbers, Integer::compare);


2. 특정 객체의 인스턴스 메소드 참조:
문법: 객체참조::메소드명

List<String> messages = Arrays.asList("Hello", "World");
messages.forEach(System.out::println);


3. 임의 객체의 인스턴스 메소드 참조: 같은 타입의 어떤 객체에서도 호출될 수 있는 인스턴스 메소드를 참조 

문법: 클래스명::메소드명

List<String> names = Arrays.asList("Steve", "Anna");
int totalLength = names.stream()
                       .mapToInt(String::length)
                       .sum();


4. 생성자 참조: 클래스의 생성자를 참조합니다.
문법: 클래스명::new

List<String> names = Arrays.asList("Java", "Kotlin");
List<Person> people = names.stream()
                           .map(Person::new)
                           .collect(Collectors.toList());

 


메소드 레퍼런스는 람다 표현식을 사용하는 곳에서 대체로 사용될 수 있으며, 코드의 재사용성과 간결성을 증가시킵니다. 또한, 메소드 레퍼런스는 명확한 의도를 전달하기 때문에 프로그램의 가독성을 높이는 데 효과적입니다.