Frankie辉
2017-05-01 07:22外部类的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条回答
为你推荐
- java 为什么我写的代码中内部类不能够改变外部类成员的值?
- java
- 1个回答
- 如何在php中获取数据结果数组
- php
- 3个回答
- 如何在使用表单的逗号开头的现有数组末尾添加新数组?
- php
- 2个回答
- Laravel 5 - 如何为raravel数组添加多个参数以进行数据库插入?
- laravel
- arrays
- php
- 2个回答
- 将值添加到多维数组中
- arrays
- php
- 2个回答
换一换