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
相关产品推荐
相关产品推荐

