如何处理 NamingEnumeration<SearchResult> 类型(基本 Java,LDAP)
How to handle NamingEnumeration<SearchResult> type (Basic Java, LDAP)
我想在 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()
and 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
}
"enhanced for statement (sometimes called the "for-each 循环“语句)”不能用于它们,因为它们实现了 Enumeration
instead of the Iterable
-接口。其原因主要是历史原因,NamingEnumeration
自 Java 1.3 以来存在,Iterable
自 Java 1.5 以来存在。
我想在 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()
and 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
}
"enhanced for statement (sometimes called the "for-each 循环“语句)”不能用于它们,因为它们实现了 Enumeration
instead of the Iterable
-接口。其原因主要是历史原因,NamingEnumeration
自 Java 1.3 以来存在,Iterable
自 Java 1.5 以来存在。