【发布时间】:2012-04-11 11:51:40
【问题描述】:
我有一个有一些价值的字符串。我想遍历调用特定方法的包中的所有类,如果方法返回的值等于我的字符串中的值,则创建该类的对象。
我想以动态的方式做这件事,所以如果我在这个包中添加一个类,它会自动在迭代中。
可以这样做吗? 如果没有,有办法做我想做的事吗?
我期待类似的东西。
for(Class clazz: SomeClass.listClasses("org.package")){
//code here
}
【问题讨论】:
-
“在这个包中添加一个类”是什么意思?它是如何进入java进程的classpath的?
-
@Jeffrey 我正在阅读有关反射的信息,我认为这是唯一的方法,但我对反射一无所知。我尝试了一种“正常方式”为我在该包中的每个类添加验证,但我不想要这种方式,因为它不可扩展。
-
@MiserableVariable 在开发时,我在包中添加了一些新类(所有类都扩展了一个名为 Document 的抽象类)。
-
@RenatoDinhaniConceição 反射是解决这个问题的一种方法,但是你有没有尝试过反射?那里有相当不错的tutorials...
-
我不明白这是一项反思的工作。更多的文件系统/类加载器工作。
标签: java reflection