자바에서 함수포인터를 대체할만한건 뭔가요?

조회수 9300회

10줄정도 되는 메소드가 있는데요. 코드 몇줄 바꾸는것 같은 차이는 무시하고 거의 같은 일을하는 메소드를 몇개 더 만들고 싶어요. 함수포인터는 그런걸 거의 한줄로 대체하는데 자바에는 함수포인터가 없잖아요.

함수포인터를 대신할만한게 뭔가요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    함수포인터를 대체할만한 내부 익명 클래스(Anonymous inner class) 가 있는데요.

    String을 매개변수로 받고 int를 리턴하는 함수가 있다면 먼저 메소드만 가지는 interface를 정의해 줍니다.

    interface StringFunction {
        int func(String param);
    }
    
    public void takingMethod(StringFunction sf) {
       int i = sf.func("my string");
       // do whatever ...
    }
    

    위에처럼 메소드는 StringFunction의 인스턴스에서 접근 가능합니다.

    ref.takingMethod(new StringFunction() {
        public int func(String param) {
            // body
        }
    });
    

    호출은 이런식으로 하면됩니다.

    또 java 8에서 람다식을 쓰시면 ref.takingMethod(매개변수 -> 처리);이런 식으로도 가능합니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)