我的功能是更新ArrayList,但不更新布尔值,这很奇怪!
我只是不明白,或者他们俩都更新了,或者他们俩都没有。
private ArrayList<String> arrayList = new ArrayList<>();
private boolean isEmpty = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addNames(arrayList, isEmpty);
Log.d("status", arrayList.size() + " " + isEmpty);
}
private void addNames(ArrayList<String> names, boolean empty) {
names.add("Moshe");
names.add("Noa");
names.add("Haim");
empty = false;
}
如何更新isEmpty变量? (this.isEmpty = false;对我不好,我需要另一种方式)
答案 0 :(得分:0)
您要将字段设置为arg,因此应改为empty = false
this.isEmpty = empty
就像将空值设置为false一样,将传入的参数“空”设置为false而不是字段
答案 1 :(得分:0)
您使用了错误的变量。 empty
是仅具有方法范围的方法参数。类范围变量为isEmpty
。在这种情况下,您无需使用this
。
使用isEmpty = true;
在您的方案中,您甚至不需要在该方法中传递参数。这些变量是全局变量,可以在不将其作为参数传递的情况下进行访问。当您可以使用isEmpty
arrayList.isEmpty()
答案 2 :(得分:0)
您不需要任何isEmpty
字段,可以通过致电arrayList.isEmpty()
即时检查。
private List<String> arrayList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addNames(arrayList);
Log.d("status", arrayList.size() + " " + arrayList.isEmpty());
}
private void addNames(List<String> names) {
names.add("Moshe");
names.add("Noa");
names.add("Haim");
}
查看here以获取更多信息