如何访问从封闭类检索到匿名内部类(侦听器)中的数据?

我从Firestore检索了一个字符串列表。我想用此数据填充微调器。我知道一个内部类只能从封闭的类中访问一个变量,前提是该变量被声明为final。但是由于某种原因,IDE告诉我它不能是列表,而必须是单个元素的数组!?

因为我要做的事情一定很普通,我怀疑自己比平常要笨,并且错过了明显的东西……但是我看不到它。

我已经读过Oracle的Java文档关于嵌套类,内部类和匿名类的说法,无济于事。

private void setUpSpinners(DocumentReference DBStructureDocRef){

    List<String> allUnitTypes = new ArrayList<>();

    DBStructureDocRef.get()
            .addOnSuccessListener(new OnSuccessListener<Documentsnapshot>() {
                @Override
                public void onSuccess(Documentsnapshot documentsnapshot) {
                    if (documentsnapshot.exists()) {

                        allUnitTypes = (List<String>) documentsnapshot.get(KEY_ALL_UNIT_TYPES);

                    } else {
                        Toast.makeText(Mainactivity.this,"Document does not exist",Toast.LENGTH_SHORT).show();
                    }
                }
            });
    // then go on to do something with the data retrieved in allUnitTypes

当未将allUnitTypes声明为final时,我得到一条消息:从内部类内部访问变量'allUnitTypes',需要将其声明为final。

当我将allUnitTypes声明为final时,我收到消息:无法为最终变量'allUnitTypes'赋值

fangguifenshiwodidi 回答:如何访问从封闭类检索到匿名内部类(侦听器)中的数据?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3163507.html

大家都在问