0
我有一个问题,我不能访问mGirlsLisl
变量。 我认为这是try catch中的一个问题。无法访问实例变量
代码运行良好,但onCreate
方法无法访问mGirlsList
变量。 请检查代码 公共类MainActivity扩展AppCompatActivity {
private ArrayList<Girl> mGirlsList;
private GirlClient girlClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
fetchGirls("girls.json");
Log.i("LOG", String.valueOf(mGirlsList.size())); // ERROR can't get size
}
private void fetchGirls(String query) {
girlClient = new GirlClient();
String url = girlClient.getApiUrl(query);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(url).build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonData = response.body().string();
try {
mGirlsList = girlClient.getGirlsListFromJson(jsonData);
Log.i("LOG", String.valueOf(mGirlsList.size())); // 5 OK
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
尝试访问它时会出现什么错误?空指针异常? –
方法''Callback'的onResponse()'将从服务器获得响应后异步运行。在'fetchGirls'中,你创建了类'Callback',但是没有调用'onResponse'。所以'mGirlsList'尚未初始化 –
@ShamasS是它的一个引起:java.lang.NullPointerException – Suzy21