允许类“自行注册”,将自己添加到List等

时间:2012-06-13 05:31:46

标签: java

我正在开发一个有很多贡献的Java应用程序。我希望在一个包中的类以某种方式“自我注册”自己。目前,我们还有另一个类,只需将每个类添加到类似的列表中:

ourlist.add( new SomeClassName() );

这要求每个贡献者为我们想要避免的添加添加这样的行。我想让应用程序扫描包,并自动将每个类添加到列表中,如上所述。

我已经尝试过使用一些类扫描代码来获取软件包,但类型类型并不适合我们的类型,而且我对java来说太新了,无法完全理解这个问题。

2 个答案:

答案 0 :(得分:0)

运行时还是静态? 运行时可以在类中使用静态块,并将代码放在侧面静态块中进行自我注册。就像JDBC驱动程序的工作方式和向drivermanager注册一样。

答案 1 :(得分:0)

Scan the package to get all class name并使用Reflection创建每个实例以添加到list

for(Class claszz: scannedClasses){
 list.add(clazz.newInstance());//default constructor
}