Frankie辉 2017-05-01 07:22 采纳率: 16.7%
浏览 1390

外部类的List数组无法在内部类进行添加新数据

我定义了一个全局变量的List数组,用于储存用户的好友。但是我在加载好友数据的时候发现该数组根本没有改变它的值,求助各位。具体说明请看代码。

private static List friendList=new ArrayList<>();

private void initFriend() {
//加载好友数据
//此外,我为了测试List的赋值情况,在几个部分加入了测试代码。
//第一个测试代码
User user1=new User("小赵",“计院”);
friendList.add(user1);

        //查询存放该用户的好友数据的数据库的ID这里是我用的bmob服务器,就是先去查询本用户的好友数据库的ID,在根据ID去加载该数据库内的好友数据
    BmobQuery<FriendDatebase> query = new BmobQuery<FriendDatebase>();
    query.addWhereEqualTo("myUser", bmobUser);
    query.findObjects(new FindListener<FriendDatebase>() {
        @Override
        public void done(List<FriendDatebase> object,BmobException e) {
            if(e==null){
                            **//第二个测试代码
                            User user2=new User("小钱","计院");
                            friendList.add(user2);**
                            //查询成功,接下来将好友数据的数据库传入本地,准备继续进行数据库内部的查询。
                FriendDatebase friendDatebase=new FriendDatebase();
                friendDatebase.setObjectId(object.get(0).getObjectId());//这步完成,friendDatebase即是本地用户的好友数据,接下来继续查询数据库内的数据
                BmobQuery<User> query = new BmobQuery<User>();
                query.addWhereRelatedTo("friend", new BmobPointer(friendDatebase));
                query.findObjects(new FindListener<User>() {
                    @Override
                    public void done(List<User> object,BmobException e) {
                        if(e==null){
                            for (User gameScore : object) {
                                //创建变量去接收数据库内的好友信息,然后add
                                User friend = new User(gameScore.gettureName(), gameScore.getdepartment());
                                friendList.add(friend);
                            }
                                                            **//第三个测试代码
                                                            User user3=new User("小孙","计院");
                                                            friendList.add(user3);**
                        }else{
                            createDialog("失败",e.getErrorCode()+e.getMessage());
                        }
                    }
                });
            }else{
                createDialog("失败",e.getErrorCode()+e.getMessage());
            }
        }
    });
}

而整段代码执行后,没有报错。我确认过从数据库查询的部分是没有问题的,数据确实查下来了。但是赋值没有成功,结果显示在List数组中只有user1,没有user2和user3.我就不知道是什么情况,请各位注意三个user的位置,我想已经是阐述清楚问题了。拜托各位!

  • 写回答

4条回答

  • ziyejinwei1994 2017-05-02 02:28
    关注

    http://www.jb51.net/article/101868.htm static 是你加了这个的问题,你去掉试试

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料