【问题标题】:Clone Java NamingEnumeration?克隆 Java 命名枚举?
【发布时间】:2009-06-09 14:26:27
【问题描述】:

只是想知道是否有办法在 Java 中克隆 NamingEnumeration?我的程序在 LDAP 服务器中搜索人员,可能需要几秒钟才能完成。要获得结果数量,我使用以下方法:

NamingEnumeration results = null;
NamingEnumeration results2 = null;

results = ctx.search("", "("+searchAt+"=" +searchVal +")", controls);
results2 = result;
int i = 0;
while(results2.hasMore())
{
    results2.next();
    i++;
}

但是由于 results2 只是在我显示结果时对结果的引用 results.hasMore() 将始终返回 false。

有没有一种方法可以克隆“结果”而不必重新执行搜索并将其分配给“结果2”?

谢谢,-皮特

【问题讨论】:

    标签: java variables clone


    【解决方案1】:

    无法保证如果您重做搜索,您将得到相同的答案。

    简单的解决方案是将结果复制到List(具体为ArrayList)。

    【讨论】:

      【解决方案2】:

      一般来说,如果您需要复制Enumeration(或Iterator),请将内容移动到List。大多数枚举不能直接克隆。您可以手动创建列表,也可以使用 Collections.list 方法(我在那里错过了一会儿)。

      【讨论】:

        【解决方案3】:

        使用 Collections.list(results) 将结果放入列表中,然后使用 List.size 获取计数,并遍历列表。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-11
          • 2012-06-17
          • 1970-01-01
          相关资源
          最近更新 更多