본문 바로가기
Java

[Java; 자바] Method Reference ( 메소드 레퍼런스 )

by daddydontsleep 2023. 10. 18.
728x90
728x90

Java에서 메소드 레퍼런스 (Method Reference)는 람다 표현식을 간단하게 작성할 수 있게 해주는 기능입니다.

메소드 레퍼런스를 사용하면 람다 표현식을 대체할 수 있고, 코드를 더 간결하게 만들 수 있습니다.

메소드 레퍼런스는 기존의 메소드를 참조하여 람다 표현식을 만들어낼 수 있습니다.

메소드 레퍼런스는 주로 함수형 인터페이스를 구현하는 메소드를 가리킬때 사용됩니다.

예를 들어, 함수형 인터페이스에 정의된 메소드와 동일한 시그니처를 가진 메소드를 참조할 수 있습니다.

메소드 레퍼런스의 일반적인 문법은 다음과 같습니다.

참조할클래스::메소드이름

메소드 레퍼런스는 다음과 같은 유형으로 나눌 수 있습니다.

1. 정적 메소드 레퍼런스 (Static Method References): 정적 메소드를 참조합니다.

예: ClassName::staticMethodName

2. 인스턴스 메소드 레퍼런스 (Instance Method Reference): 특정 객체의 인스턴스 메소드를 참조합니다.

예: instance::instanceMethodName

3. 클래스의 인스턴스 메소드 레퍼런스 (Class Instance Method References): 클래스의 인스턴스 메소드를 참조합니다.

예: ClassName::instanceMethodName

4. 생성자 레퍼런스 (Constructor References): 생성자를 참조합니다.

예: ClassName::new

<예제>

import java.util.List;

public class MethodReferenceExample {

    // 정적 메소드
    public static void print(String str) {
        System.out.println(str);
    }

    // 인스턴스 메소드
    public void printUpperCase(String str) {
        System.out.println(str.toUpperCase());
    }

    public static void main(String[] args) {
        List<String> names = List.of("Java", "Python", "C++");

        // 정적 메소드 레퍼런스
        names.forEach(MethodReferenceExample::print);

        // 인스턴스 메소드 레퍼런스
        MethodReferenceExample instance = new MethodReferenceExample();
        names.forEach(instance::printUpperCase);
    }
}

이 예제에서는 `forEach` 메소드를 사용하여 리스트의 각 요소에 대해 메소드 레퍼런스를 적용하고 있습니다.

정적 메소드와 인스턴스 메소드의 레퍼런스를 보여주고 있습니다

메소드 레퍼런스를 사용하면 코드가 더 간결하고 가독성이 좋아집니다.

[Reference]

ChatGPT

728x90
300x250