2023-java-study / book-study

북 스터디 기록 레포지토리
0 stars 0 forks source link

[Item 44] 서로 다른 함수형 인터페이스를 같은 위치의 인수로 받는 메서드들의 다중 정의 #130

Open gmelon opened 1 year ago

gmelon commented 1 year ago

p.267 - 서로 다른 함수형 인터페이스를 같은 위치의 인수로 받는 메서드들을 다중 정의해서 문제가 발생하는 코드의 예시

gmelon commented 1 year ago
public static void main(String[] args) {
    MyClass myClass = new MyClass();
    myClass.someMethod(() -> {}); // Runnable
    myClass.someMethod(() -> 1); // Callable
}

static class MyClass {
    public void someMethod(Runnable runnable) {

    }

    public <T> void someMethod(Callable<T> callable) {

    }
}

Runnable

@FunctionalInterface
public interface Runnable {
    public abstract void run();
}

Callable

@FunctionalInterface
public interface Callable<V> {
    V call() throws Exception;
}

확실히 메서드 이름이 같은데 인자로 받는 함수형 인터페이스가 다르면 헷갈리긴 하겠네요. 함수형 인터페이스가 달라지면 이름도 의미있게 다르게 지어주는게 좋아보입니당.