外部类的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个回答

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

应该是没有走到下面两个add方法吧,在 friendList.add(user2)之后打log看看有没有添加

遇到和你一样的问题,用list,ArrayList,Vector等一堆集合类就是无法添加数据,但是用一个String变量去接收却可以接收出来

我已经不记得这个问题是问什么的了,好像也没有解决。总之,谢谢各位道友了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问