C/C++ 을 사용하다보면 Callback을 많이 사용한다.

그런데 Android 및 Java는 Callback이라는 개념이 존재하지 않는다.

왜냐하면 포인터가 없기 때문에 함수포인터도 없기 때문이다.

 

Java 에서 위의 Callback을 사용하려면 Interface를 사용해야 한다.

정말 뼛속까지 Object Oriented Language 답다.

 

간단하게 살펴보면 다음과 같다.

아래의 빨강글씨가 Callback이 될 것이다.

 

 public abstract class ContactManager {


 public ContactManager() {
  // TODO Auto-generated constructor stub
 }


 interface ContactUpdater
 {
  int updateContact(String id, String name, String phone_number);
 }

}

 

인터페이스를 사용하는 방법은 간단하다

 

1. 구현은 다음과 같이 익명클래스를 만들어 구현을 정의한다.

 ContactUpdater cu = new ContactUpdater() {
   
   @Override
   public int updateContact(String id, String name, String phone_number) {
    // TODO Auto-generated method stub
    return 0;
   }
  };

 

2. 사용

 cu. updateContact(id, name, number);

 

Java에서는 일반적인 내용이지만, C/C++ 하던 사람에게는 쉽지 않은 내용이다.