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


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

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

  • 2016년 01월 14일에 작성됨

조회수 864


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

  • 2016년 01월 14일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close