【发布时间】:2012-12-23 06:40:30
【问题描述】:
我已经检查了 Java 代理和 cglib,但我还没有找到任何关于我将如何开始这个项目的示例。
这是我需要做的。
我有一个界面:
public interface RoadMap<T extends City>{
public void map(T city);
}
我有一堆不同类型的城市作为名为@987654322@的类的内部类
我希望能够在运行时通过循环遍历Cities 类的不同内部类来实现接口,如下所示:
for(Class clazz : Cities.class.getDeclaredClasses()){
//implement RoadMap interface
}
所有实现都是相同的,除了类型参数需要是 clazz 类型(在 for 循环中)。
这甚至可能吗?如果是这样,我应该从哪里开始。 Java Proxies 和 cglib 谈了很多关于方法拦截的事情,但这并不是我真正想要做的。
谢谢
【问题讨论】:
-
您意识到
.getDeclaredClasses()得到内部类,而不是子类,对吧? -
是的,我想要内部类
-
但你说“通过像这样循环遍历 Cities 类的不同子类:”
-
对不起,我的错误。我最终通过使用 Javassist 并在运行时生成字节码来完成这项工作。