我想问一下,如果我创建了一个具有一些公共(public)成员的外部类,并且还在外部类中创建了一个内部类,那么在不实例化它的情况下使用外部类变量是否安全? 这两种情况会有什么不同? 因为我在我的应用程序中创建了很多内部类,有时应用程序不能正常工作,我总是怀疑是因为这个,所以我必须实例化它。 假设我有这个类:
Class x extends Activity
{
public sharedPreferences sx;
protected void onCreate(Bundle savedInstantState)
{
super.onCreate(savedInstantState);
setContentView(R.layout.activity_x);
sx=getSharedPreferences("name",Context.MODE_PRIVATE);
}
private class y extends AsyncTask<Void,Void,Void>
{
@override
public void doInBackground(Void... arg0){
String name=sx.getString("name",name);
}
protected void onPostExecute(Void result) {
Toast.makeText(getApplicationContext(),name,Toast.LENGTH_LONG).show();
}
}
请指导我。
最佳答案
Java 语言允许内部类访问外部类的私有(private)成员。为了弥合差距,编译器生成了几个合成方法:
有关示例的更多信息 http://developer.android.com/training/articles/perf-tips.html#PackageInner
关于java - 在不创建对象的情况下访问外部类变量是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29769062/