我有一個作爲偵聽器的私有抽象類。我可以訪問它只反映。我如何實現這個類?如何通過反射來實現抽象類
public class A {
private abstract class OnWorkListener {
public abstract void onWork(int param);
}
private OnWorkListener mListener;
public A(OnWorkListener listener) {
mListener = listener;
}
public void work() {
// some working
if(mListener != null) {
mListener.onWork(0);
}
}
}
public class B {
private static final String TAG = B.class.getSimpleName();
public B() {
//How to overwrite it?
WorkListener listener = new WorkListener() {
public void onWork(int what) {
Log.d(TAG, "onWork "+what);
}
};
A a = new A(listener);
a.work();
}
}
問題是我無法創建抽象類的實例。我需要先實現它。但我找不到答案。
你在做什麼對我來說似乎很好。有什麼問題? – 2013-02-18 15:12:07
您將無法在A類以外的任何地方實現'OnWorkListener',因爲它是私人的。 – 2013-02-18 15:15:13
如果你把它作爲一個接口,你可以使用'Proxy'。但是,我通常建議不要使用反射。 (或者'int's表示不是數字的東西。) – 2013-02-18 15:15:31