函数不更新变量

时间:2019-05-30 08:53:52

标签: java android

我的功能是更新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;对我不好,我需要另一种方式)

3 个答案:

答案 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以获取更多信息