You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio v4.2中MainActivity内声明public类提示修饰符不允许如何解决

问题原因

你把Download类定义在了onCreate()方法内部,属于Java中的局部内部类,语法明确规定局部内部类不允许使用public、private、protected、static这类访问/权限修饰符,因此触发了对应报错。

解决方案

方案1:将Download类调整为Activity的成员内部类(推荐)

把Download类的定义挪到和onCreate方法平级的位置,作为Activity的成员内部类,此时可以正常使用public修饰符,修改后代码示例:

public class MainActivity extends AppCompatActivity {
    //Intialistion of variables:
    ListView listView;
    ArrayList<String> arrayList = new ArrayList<String>();
    ArrayAdapter arrayAdapter;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        //declaration of variables :
        listView = findViewById(R.id.ListView);
        arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1);  
        listView.setAdapter(arrayAdapter);
    }

    // 移到onCreate外,作为成员内部类
    public class Download extends AsyncTask<String,Void,String>{
        @Override
        protected String doInBackground(String... strings) {
            return null;
        }
    }
}

方案2:保留在方法内,删除public修饰符

如果你的Download类只需要在onCreate方法内部使用,直接去掉public修饰符即可,局部内部类默认仅当前方法可访问,无需额外加访问修饰符:

// 在onCreate方法内定义时去掉public
class Download extends AsyncTask<String,Void,String>{
    @Override
    protected String doInBackground(String... strings) {
        return null;
    }
}

内容的提问来源于stack exchange,提问作者KHUSHAL Tiwary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 14:15:05