克隆Java NamingEnumeration?

时间:2009-06-09 14:26:28

标签: java variables clone

只是想知道是否有办法克隆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只是对结果的引用.hasMore()将始终返回false。

有没有办法克隆'结果'而无需重新预先形成搜索并将其分配给'results2'?

谢谢,-Pete

3 个答案:

答案 0 :(得分:4)

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

简单的解决方案是将结果复制到ListArrayList具体)。

答案 1 :(得分:3)

一般情况下,如果您需要复制Enumeration(或Iterator),请将内容移至List。大多数枚举不能直接克隆。您可以手动创建列表或使用方法Collections.list(我错过了一段时间)。

答案 2 :(得分:2)

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