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

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(매개변수 -> 처리);이런 식으로도 가능합니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.