java吧 关注:1,290,301贴子:12,818,447
  • 6回复贴,共1

求java编程高手来看看这个有什么错误

取消只看楼主收藏回复

public String showByboardAllTip(){
TipInfo tipinfo=null;
Board board = boardservice.showBoardById(boardid); // 取得版块信息
List listTip = tipservice.showTipByBoard(boardid); // 取得该板块主题列表
for (int i = 0; i < listTip.size(); i++) {
tip = (Tip) listTip.get(i); // 循环取得主题对象
int replycount = replyservice.showAllReply(tip.getTipid());
System.out.println(tip.getTitle()+"--tip");
tipinfo = new TipInfo();
User user = userservice.showUserById(tip.getUser().getUserid()); // 取得该主题的发布用户
tipinfo.setTitle(tip.getTitle());
System.out.println(tipinfo.getTitle()+"--tipinfo");
tipinfo.setReplyCount(replycount);
tipinfo.setUsername(user.getUsername());
tipinfo.setTipid(tip.getTipid());
info.add(tipinfo);
System.out.println(info.get(i).getTitle()+"--info");
}
System.out.println(info);
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("board", board);
return SUCCESS;
}
假设listTip中有2个数据 "你好" "我好"
但是输出的结果是
你好--tip
你好--tipinfo
null--info
我好--tip
我好--tipinfo
你好--info
这是怎么回事啊



1楼2012-05-26 19:13回复
    List<TipInfo> info = new ArrayList<TipInfo>();


    2楼2012-05-26 19:16
    回复
      2025-12-07 15:35:47
      广告
      不感兴趣
      开通SVIP免广告
      并且info中有3个数据 null,你好,我好
      这到底怎么回事啊,今天纠结了一天


      3楼2012-05-26 19:19
      回复
        TipInfo
        private int tipid;
        private String title;
        private String username;
        private String boardname;
        private int replyCount;
        后面是setter和getter方法
        这个类是一个dto,和相应jsp页面的字段相对应


        5楼2012-05-26 19:23
        回复
          第一次循环tipinfo中都有数据,info中没有,到第二次循环才把第一次循环的数据存到info中


          6楼2012-05-26 19:30
          回复
            通过楼上大神的提醒,用断点找到问题了,原来小弟把
            List<TipInfo> info = new ArrayList<TipInfo>();放在了showByboardAllTip()方法外面
            现在改为
            List<TipInfo> info ;
            showByboardAllTip(){
            info = new ArrayList<TipInfo>();
            }
            问题就解决了,不知道这是不是java的一个bug


            8楼2012-05-26 21:04
            回复
              不是吧我这样定义的相对于for循环来说都是外部变量,其本质都没变啊


              10楼2012-05-27 19:39
              回复