public String load_Data(){
OkHttpUtils.get()
.url("https://news-at.zhihu.com/api/4/news/latest")
. build()
.execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int i) {
}
@Override
public void onResponse(String s, int i) {
Gson gson=new Gson();
NewMsg_Entity n=gson.fromJson(s,NewMsg_Entity.class);
result_Story=n.getStories();
result_TopStory=n.getTop_stories();
Log.d("abc",result_TopStory.get(0).getTitle());
}
});
return result_TopStory.get(0).getTitle();
}
我定义的全局变量
List<NewMsg_Entity.Top_stories> result_TopStory;输出Log.d的时候没报错
为什么return的时候就报空指针错误?
OkHttpUtils.get()
.url("https://news-at.zhihu.com/api/4/news/latest")
. build()
.execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int i) {
}
@Override
public void onResponse(String s, int i) {
Gson gson=new Gson();
NewMsg_Entity n=gson.fromJson(s,NewMsg_Entity.class);
result_Story=n.getStories();
result_TopStory=n.getTop_stories();
Log.d("abc",result_TopStory.get(0).getTitle());
}
});
return result_TopStory.get(0).getTitle();
}
我定义的全局变量
List<NewMsg_Entity.Top_stories> result_TopStory;输出Log.d的时候没报错
为什么return的时候就报空指针错误?
System.out.println(result_TopStory.get(0));
}else{
System.err.println("list 为空");
}
2. 已经进入到onResponse方法中,但是赋了一个null值也是有可能吧。自己好好排查下吧,一般这样的,如果逻辑没什么问题,就debug,自己慢慢调试,看看那里出问题了
Log.d是可以正确输出 而且可以输出list的对应值08-14 14:14:31.107 16131-16131/app.wx.com.myapplication_one D/abc: https://pic1.zhimg.com/v2-2667112cea664ca11a549cac07c8e50c.jpg但是在onResponse这个方法外面
我再去引用 result_Topstory就会报空指针FATAL EXCEPTION: main
java.lang.NullPointerException
at fragment.NewsView_Fragment.load_Data(NewsView_Fragment.java:83)
at fragment.NewsView_Fragment.onCreateView(NewsView_Fragment.java:53)53行 是调用这个函数 load_Data();
83是引用 了result_Topstory
List<NewMsg_Entity.Stories> result_Story;
List<NewMsg_Entity.Top_stories> result_TopStory;
List<String>TopStroy_Image;
RecyclerView recyclerView;
NewsAdatper adatper; 我设的是全局变量啊
但是在response方法外面 一引用 result_TopStory 的值 会报空指针