我在学习jive的程序,但是有个地方没有看懂

kayej 2005-11-24 05:24:10
代码:

String className = "com.jivesoftware.forum.database.DbUserManager";
try {
Class c = Class.forName(className);
// Attempt to instantiate the UserManager implementation with a
// DbForumFactory as a paramater.
Class [] params = new Class [] { this.getClass() };
Constructor constructor = c.getConstructor(params);

// Intantiate the gateway object. We assume that
userManager = (UserManager)constructor.newInstance(
new Object[] { this });
}
catch (Exception e) {
System.err.println("Exception creating UserManager!");
e.printStackTrace();
}



Class [] params = new Class [] { this.getClass() };
这行是什么意思?

Constructor constructor = c.getConstructor(params);
我没有懂返回的是什么?

userManager = (UserManager)constructor.newInstance(
new Object[] { this });
这个是生成 com.jivesoftware.forum.database.DbUserManager 类吗?


为什么不这样呢?
Class c = Class.forName(className);
userManager = (UserManager)c.newInstance();
这样也可以生成亚
...全文
113 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
etongg 2005-11-24
  • 打赏
  • 举报
回复
第二个是调用非默认的构造函数去构造对象
zhkchi 2005-11-24
  • 打赏
  • 举报
回复
类本身也是对象的

后面的是工厂方法
HouJinkun2005 2005-11-24
  • 打赏
  • 举报
回复
Class [] params = new Class [] { this.getClass() };
匿名对象。


第二个问题,看一下设计模式的书。
类工厂模式和Builder模式

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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