我该怎么“做”?

lizzz 2003-11-03 12:15:25
我在我的应用程序中设计了一个接口,用户编写实现类,通过用户的实现类向我的程序提供运行参数。用户的实现类的名称和位置用XML或者properties都行。我想问的是,在我的程序中需要调用用户写的实现类,我该如何实例化它呢?我看了一下反射和代理,但是还是不明白。谢谢赐教!
...全文
40 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lizzz 2003-11-03
  • 打赏
  • 举报
回复
没人碰到过类似的问题吗?还是太简单了?
我真的急用,请各位不惜赐教
lizzz 2003-11-03
  • 打赏
  • 举报
回复
ok 问题解决,多谢各位
lizzz 2003-11-03
  • 打赏
  • 举报
回复
to okwuzhijun:
你误会了,我是说whyxx的例子中的temp是由一个无参数的构造函数构造的,能不能用(假设我知道参数)一个带参数的构造函数new 出这个temp来。 :)
okwuzhijun 2003-11-03
  • 打赏
  • 举报
回复
对于properties文件可用java.util.ResourceBundle的getString(String key)来获得你所要的参数,得到的是一个字符串,我想你应该知道将一个字符串解析成你所想要的数据类型。
good luck!
lizzz 2003-11-03
  • 打赏
  • 举报
回复
to whyxx:
newInstance()返回的是一个无参数的构造函数构造出来的对象,newInstance()是否可以带参数?
laoer 2003-11-03
  • 打赏
  • 举报
回复
:)应该是
Interface ClassA = (Interface) Class.forName(className).newInstance();
laoer 2003-11-03
  • 打赏
  • 举报
回复
(Interface) ClassA = Class.forName(className).newInstance();
ClassA.getClass().getMethod(methodName, paramTypes);
whyxx 2003-11-03
  • 打赏
  • 举报
回复
YourInterface temp = (YourInterface) Class.forName("xxx.xxx.xxx").newInstance();
xxx.xxx.xxx是你从文件中读出来的实现类的名字.

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧