추상 클래스 콜백 사용
interface ClassCCallback {
void setA(String a);
void setB(String b);
void setC(String c);
}
abstract class ClassCCallbackAdapter implements ClassCCallback {
@Override
public void setA(String a) { /* nothing */ }
@Override
public void setB(String b) { /* nothing */ }
@Override
public void setC(String c) {
Log.d("Adapter", "SetC abstract!!");
}
// finish() intentionally left out
}
public class ClassC {
private final WeakReference<ClassCCallbackAdapter> callback;
public ClassC(ClassCCallbackAdapter callback) {
this.callback = new WeakReference<ClassCCallbackAdapter>(callback);
callMe();
}
public void callMe() {
System.out.println("ClassC Call");
if (callback != null) {
String data = "orignal data";
this.delegate.get().setA(data);
this.delegate.get().setC(data);
}
}
}
MainActivity Callback 사용
public class MainActivity extends AppCompatActivity {
ClassCCallbackAdapter callback = new ClassCCallbackAdapter() {
@Override
public void setA(String a) {
super.setA(a);
Log.d("ClassC Callback", a);
}
@Override
public void setB(String b) {
super.setB(b);
}
//setC 함수는 abstract 클래스에서 처리
};
ClassC classC = new ClassC(callback);
}
'Android(Java)' 카테고리의 다른 글
[Java] 암시적 Intent 공유하기 (1) | 2024.01.11 |
---|---|
[Java] 암시적 Intent 기본 사용방법 (0) | 2024.01.11 |
[Java] 사용자 Activity 활성화 명시적 Intent 사용 방법 (1) | 2024.01.11 |
[Java] interface Callback (0) | 2024.01.05 |
[Java] Delegate 패턴 사용법 (2) | 2024.01.05 |