在Android / Java中在运行时覆盖并实现方法

时间:2014-06-22 18:47:25

标签: java android reflection android-library

有一个类使用委托模式返回结果。

class A {

   interface ICallback {
     callback(String data);
   }

   void doSomeAction(ICallback cb) {
     //some manipuation
     if(cb != null) {
        cb.callback(response);
     }
  }
}

这里的问题是A类在库项目中,并且库可能不会附加到主项目。因此,A类的负载和doSomeAction的调用应该用反射来实现。但是应该如何进行回调呢? 我读到了Proxy,但我仍然无法理解是否有可能用Porxy解决它。或者这种情况还有其他解决方案吗?

我尝试使用代理:

        Class<?> clazz = Class.forName("com.aa.bb.cc.dd.A$ICallback");
        Class<?>[] interfaces = new Class[] { clazz};
        Object proxy = Proxy.newProxyInstance(clazz.getClassLoader(), interfaces, handler);

在最后一行我开始调用&#34; com.sun.jdi.InvocationException调用方法&#34;错误。

0 个答案:

没有答案