为了账号安全,请及时绑定邮箱和手机立即绑定

如何正确打印枚举器元素?

如何正确打印枚举器元素?

胡子哥哥 2021-09-03 13:47:19
我想理解别人写的java程序,我不知道java。我写了一个简短的方法来转储请求对象的属性。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("++++++++++++++++++++++");}令我震惊的是,我意识到与我的代码输出相比,NetBeans 变量选项卡在请求对象上显示的属性多两倍。枚举似乎记录在这里:https : //tomcat.apache.org/tomcat-4.1-doc/catalina/docs/api/org/apache/catalina/util/Enumerator.html我究竟做错了什么?
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

在此块中调用 nextElement 方法两次:


while (rns.hasMoreElements()) {

        out.println("attribute name: " + rns.nextElement());

        attrNames[ani] = rns.nextElement().toString();

        ani = ani + 1;

    }

你应该调用 nextElement 一次。把它放在变量中,然后使用该变量。


查看完整回答
反对 回复 2021-09-03
  • 1 回答
  • 0 关注
  • 198 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号