繁体   English   中英

Java中接口/抽象类的动态实现

[英]Dynamic implementation for interface/abstract class in Java

什么是构建接口和/或抽象类的动态实现的事实上的解决方案? 我基本上想要的是:

interface IMyEntity {
  int getValue1();
  void setValue1(int x);
}
...
class MyEntityDispatcher implements WhateverDispatcher {
  public Object handleCall(String methodName, Object[] args) {
     if(methodName.equals("getValue1")) {
       return new Integer(123);
     } else if(methodName.equals("setValue")) {
       ...
     }
     ...
  }
}
...
IMyEntity entity = Whatever.Implement<IMyEntity>(new MyEntityDispatcher());
entity.getValue1(); // returns 123

这是Proxy类。

class MyInvocationHandler implements InvocationHandler {
   Object invoke(Object proxy, Method method, Object[] args)  {
     if(method.getName().equals("getValue1")) {
       return new Integer(123);
     } else if(method.getName().equals("setValue")) {
           ...
     }
     ...
  }
}

InvocationHandler handler = new MyInvocationHandler();
IMyEntity e = (IMyEntity) Proxy.newProxyInstance(IMyEntity.class.getClassLoader(),
                                                 new Class[] { IMyEntity.class },
                                                 handler);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM