Android 将变量传递给方法以初始化它失败

Android 将变量传递给方法以初始化它失败,android,Android,在下面的代码中,我将一个空的泛型ArrayAdapter传递给一个方法,在该方法中它应该初始化它并向其中添加项,但它没有,这是因为Java按值传递变量吗 我可以通过返回ArrayAdapter并将其分配给我的变量来克服这个问题,但是如果我想在一次调用这个方法时使用同一个方法初始化多个变量呢 ItemsList(mList, mAdapter); private void ItemsList(final List<ItemDetails> aList, ArrayAdapter<

在下面的代码中,我将一个空的泛型ArrayAdapter传递给一个方法,在该方法中它应该初始化它并向其中添加项,但它没有,这是因为Java按值传递变量吗

我可以通过返回ArrayAdapter并将其分配给我的变量来克服这个问题,但是如果我想在一次调用这个方法时使用同一个方法初始化多个变量呢

ItemsList(mList, mAdapter);

private void ItemsList(final List<ItemDetails> aList, ArrayAdapter<ItemDetails> aAdapter){


    aAdapter = new ArrayAdapter<ItemDetails>(this, R.layout.item, aList) {
        @Override
        @NonNull
        public View getView(int aPosition, View aConvertView, @NonNull ViewGroup aParent) {
            return getView(aPosition, aConvertView, aParent, aList);
        }
    };

    gridViewList.setAdapter(aAdapter);

    aAdapter.notifyDataSetChanged();
ItemsList(mList,mAdapter);
私有无效项列表(最终列表列表,ArrayAdapter aAdapter){
aAdapter=newarrayadapter(this,R.layout.item,aList){
@凌驾
@非空
公共视图getView(int位置,视图A转换视图,@NonNull视图组aParent){
返回getView(位置、垂直视图、水平视图、列表);
}
};
setAdapter(aAdapter);
aAdapter.notifyDataSetChanged();

Oops..睡眼惺忪。是的,因为Java是“按值调用[引用]”,分配给参数不会更新调用者中的变量。通常,一个好的/简单的/习惯的方法是向内传递值/对象,例如
ItemsList(mList,CreateAdapter())
或诸如此类。我的情况是,我使用4个数组适配器,因此我没有为每个适配器创建/克隆相同的方法,而是考虑将arrayadapter传递给该方法,该方法在将来的更改中更灵活。即使使用您的方法,也要求至少传递一个整数,并使用switch来决定创建哪个适配器ans多行代码。根据方法用途,它应该返回ArrayAdapter,但您提到要在同一方法调用中初始化更多变量。您能详细说明一下情况吗?@Jack不确定为什么会有更多行代码。.“整数”在哪里来自?我在发布的代码中没有看到这样的内容,因此它也不像外部需要这样。在我的第一条评论中,还要注意,
CreateAdapter
是一个方法,隐藏(可能重复使用)实现细节。