【发布时间】:2015-05-28 01:43:02
【问题描述】:
我有一个应用程序通过 AsyncPost 任务连接到 Java Servlet backend。该任务向客户端返回一个字符串,表示一个用Gson 序列化的 json 对象。
它几乎可以正常工作,问题是我无法从实例化调用ServletPostAsyncTask:ListViewPrenota.class 的类访问Servlet 响应消息。
项目结构如下:
在 Servlet 和 Client 中我都创建了两个类,Tour.class 和 Tours.class 来存储我的数据:
旅游班:
public class Tour {
// some simple int/string/list fields
}
旅游类:
public class Tours {
private List<Tour> tours;
// ...
}
在客户端,在 ServletPostAsyncTask.class 中,我在 doInBackGround() 中收到上述 Gson 对象。在onPostExecute()我反序列化它,这样:
class ServletPostAsyncTask extends AsyncTask<Pair<Context, String>, Void, String> {
private Context context;
Tours tours;
@Override
protected String doInBackground(Pair<Context, String>... params) {
//connect to Servlet and get the serialized Gson object
}
@Override
protected void onPostExecute(String jsonResponse) {
tours = (new Gson().fromJson(jsonResponse, Tours.class));
}
}
现在,我从客户端中的ListViewPrenota.class 调用ServletPostAsyncTask:
ServletPostAsyncTask s = new ServletPostAsyncTask();
s.execute(new Pair<Context, String>(ListViewPrenota.this, "tours"));
Tours ttours = s.tours;
Tour tour = ttours.getTours().get(0);
问题:我收到一个java.lang.NullPointerException 指向Tour tour = ttours.getTours().get(0);
阻止我从 ServletPostAsyncTask 以外的其他类访问新收到的 Tours 对象的原因是什么?
非常感谢
【问题讨论】:
标签: java android json servlets android-studio