我正在考虑允许模块在属性文件中使用类;
之类的东西availableModules.properties
Contact=org.addressbook.ContactMain
Business=org.addressbook.BusinessMain
Notes=org.addressbook.Notes
...
我的框架将使用反射来实例化相关模块,然后在相关基类上调用方法,或者根据需要将对象作为参数传递。
EDIT 这是我想到的那种场景的另一个例子。
确定呼叫点需要一些核心代码。 我看到的一个应用程序通过使用反射实现了这一点,另一个应用程您是否认为前者是可以应用反射的推荐场景?
答案 0 :(得分:5)
有关支持您的想法的优秀框架,请查看the IOC container of the spring framework。
答案 1 :(得分:2)
以上是一个好用的地方 反射?
我会说不。如果你想做这种事情,你可能应该使用支持Inversion of Control aka Dependency injection的(很多)现有成熟框架之一。 Spring IOC是最受欢迎的,但还有很多其他的。谷歌为“ioc框架java”。
在引擎盖下,这些框架最有可能使用反射。但这并不意味着你应该重新发明轮子。
答案 2 :(得分:0)
如果我想动态使用一个信息(程序集名称,类名,方法名,方法参数等)存储在字符串(文本文件或数据库)中的类,我通常使用反射。