Java 如何正确打印枚举数元素?
我试图理解别人写的java程序,但我不懂java。我编写了一个简短的方法来转储请求对象的属性Java 如何正确打印枚举数元素?,java,catalina,Java,Catalina,我试图理解别人写的java程序,但我不懂java。我编写了一个简短的方法来转储请求对象的属性 public void dumpRequest(HttpServletRequest request) { String[] attrNames = new String[100]; // hard coded int ani = 0; Enumeration rns = request.getAttributeNames(); while (rns.hasMoreE
public void dumpRequest(HttpServletRequest request) {
String[] attrNames = new String[100]; // hard coded
int ani = 0;
Enumeration rns = request.getAttributeNames();
while (rns.hasMoreElements()) {
out.println("attribute name: " + rns.nextElement());
attrNames[ani] = rns.nextElement().toString();
ani = ani + 1;
}
out.println("" + ani + " atributes");
String cn;
for (int n = 0; n < ani; n++) {
cn = attrNames[n];
out.println("** " + cn + " - " + request.getAttribute(cn));
}
out.println("++++++++++++++++++++++");
}
公共无效转储请求(HttpServletRequest){
String[]attrNames=新字符串[100];//硬编码
int ani=0;
枚举rns=request.getAttributeNames();
while(rns.hasMoreElements()){
out.println(“属性名:+rns.nextElement());
attrNames[ani]=rns.nextElement().toString();
ani=ani+1;
}
out.println(“+ani+”心房”);
字符串cn;
对于(int n=0;n
令我恐惧的是,我意识到NetBeans变量选项卡在请求对象上显示的属性比我的代码输出多出两倍。
这里似乎记录了枚举:
我做错了什么?在此块中,您两次调用nextElement方法:
while (rns.hasMoreElements()) {
out.println("attribute name: " + rns.nextElement());
attrNames[ani] = rns.nextElement().toString();
ani = ani + 1;
}
你应该给nextElement打一次电话。将其放入变量中,然后使用该变量。您能给出一个输出示例吗?请完全阅读,注意:)。我猜他只是运气不好,因为它的元素数是偶数,否则他会得到无接触元素例外。@JohnHumphreys-w00te正是如此!:-)