jive中的DatabaseObjectIterator类

04-07-12 maer2003
哪位老大能不能给我解释一下DatabaseObjectIterator的代码?

1。DatabaseObjectIterator的构造函数。

2。这个类结束后又定义一个interface DatabaseObjectFactory(){}接口是什么意思呢!

我刚读jive,被挡在这了,帮帮我!

banq
2004-07-12 14:21
在我的书籍《java实用系统开发指南》中有专门“批量分页查询与迭代模式”章节来解析这个Iterator,希望对你有帮助。

maer2003
2004-07-12 14:34
谢谢彭老师,这本书我大概翻了翻,但只是少量代码的介绍!

下边代码打问号的地方我看不懂,你能简单说说吗?

为什么在构造中的程序段中又定义一个public Object loadObject(long id) 方法呢,参数id 又是怎样传入的呢?

 public DatabaseObjectIterator(int type, long [] elements,
            final Object extraObject)
    {
        this.elements = elements;
        switch (type) {
            case JiveGlobals.FORUM:
            this.objectFactory = new   DatabaseObjectFactory() {
             ForumFactory factory = (ForumFactory)extraObject;
                    public Object loadObject(long id) {//?????
                        try {
                            Forum forum = factory.getForum(id);
                            return forum;
                        }
                        catch (ForumNotFoundException mnfe) { }
                        catch (UnauthorizedException ue) { }
                        return null;
                    }
                };
                break;

banq
2004-07-12 15:00
这是一个内部类,古老的写法,类似如下:

public class DatabaseObjectFactory() {
       ForumFactory factory = (ForumFactoryextraObject;
 
      public Object loadObject(long id) {//这是该类的方法
                   try {
                            Forum forum = factory.getForum(id);
                            return forum;
                        }
                        catch (ForumNotFoundException mnfe) { }
                        catch (UnauthorizedException ue) { }
                        return null;
       }

}
<p>

maer2003
2004-07-12 15:05
谢谢你彭老师!

我再好好看看!

希望能有更多的机会向你学习学习!

song_z_j
2005-01-19 11:16
请问DatabaseObjectFactory怎么实现对

loadObject()的调用的

猜你喜欢