编译以下代码时,我收到以下错误
Enumeration e = bean.getSession().getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
System.out.println(name + " = " + value);
Error:
found : java.util.Iterator
required: java.util.Enumeration
Enumeration e = bean.getSession().getAttributeNames();
答案 0 :(得分:3)
你不应该使用枚举,它应该是迭代器。然后使用Iterator的方法,如hasNext()来检查是否有下一个项目和next()来获取下一个项目。希望它有所帮助:)
答案 1 :(得分:3)
如何使用for循环?
for (String name : bean.getSession().getAttributeNames() ) {
String value = session.getAttribute(name).toString();
System.out.println( name + " = " + value );
}
答案 2 :(得分:0)
看起来您实际上正在使用返回getAttributeNames()
实例的java.util.Iterator
方法。所以作为一个快速解决方案,这应该工作:
Iterator it = bean.getSession().getAttributeNames();
while (it.hasNext()) {
String name = (String)it.next();
String value = session.getAttribute(name).toString();
System.out.println(name + " = " + value);
如果我们知道bean
变量的实际类型和/或bean.getSession()
的返回值,则可以提供更多帮助/信息。
答案 3 :(得分:0)
我认为问题出在第一行。这对我有用:
<%
Enumeration attrs = session.getAttributeNames(); //you will need to include java.util.Enumeration
while(attrs.hasMoreElements()){ //for each item in the session array
String id = attrs.nextElement().toString(); //the name of the attribute
out.print("'" + id + "': '" + session.getAttribute(id) + "'"); //print out the key/value pair
}
%>
正如其他人指出的那样,你应该使用Iterator