gpt4 book ai didi

java - 如何处理 NamingEnumeration 类型(Basic Java、LDAP)

转载 作者:行者123 更新时间:2023-12-02 10:24:24 25 4
gpt4 key购买 nike

我想在 LDAP 服务器中查找数据。当我使用以下代码时,它希望我拥有 NamingEnumeration (不是 List、HashMap),并且还强制我使用 SearchResult 类型。

NamingEnumeration<SearchResult> values =
dirContext.search("cn=Loggers,cn=config", "(objectClass=*)", searchCtls);

当我尝试使用它时,由于它是NamingEnumeration类型,我不知道如何将其更改为String。有没有办法将其转换为字符串?我想使用 split() 但它不是字符串,所以似乎不起作用。

for (NamingEnumeration<SearchResult> ne : searchResult) {
String a = searchResult.split(""); // I want to split.
if(a.length-1].equals("Logger")){
String logType = a[a.lenth-2];
try {
// and then , I will do something with logType

如你所知,我的Java基础非常薄弱。关于如何将 NamingEnumeration 类型更改为 String 的任何建议,我将不胜感激?如果有很多方法,我想知道。

最佳答案

迭代 NamingEnumeration 的常用方法是使用 hasMore()next() .

NamingEnumeration<SearchResult> results = 
dirContext.search("cn=Loggers,cn=config", "(objectClass=*)", searchCtls);

while (results.hasMore()) {
SearchResult result = results.next();
Attributes attributes = result.getAttributes();
Attribute cn = attributes.get("cn");
//get/iterate the values of the attribute
}

“增强的 for 语句(有时称为“for-each 循环”语句)”不能用于它们,因为它们实现 Enumeration而不是 Iterable -界面。其原因主要是历史性的,NamingEnumeration 自 Java 1.3 以来就存在,Iterable 自 Java 1.5 以来就存在。

关于java - 如何处理 NamingEnumeration<SearchResult> 类型(Basic Java、LDAP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54088022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com