Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为匿名类计算toString()时发生NullPointerException_Java_Android_Json_Gson - Fatal编程技术网

Java 为匿名类计算toString()时发生NullPointerException

Java 为匿名类计算toString()时发生NullPointerException,java,android,json,gson,Java,Android,Json,Gson,正在尝试使用Gson库将JSON数组转换为对象列表 代码: TypeToken-token=new-TypeToken(){}//此行引发以下异常 公共类注释实现可序列化{ @序列化名称(“id”) 私人int mID; @序列化名称(“内容”) 私有字符串内容; @序列化名称(“作者”) 私人字符串毛瑟; @SerializedName(“作者id”) 莫托里德私人酒店; @SerializedName(“作者电子邮件”) 私人电子邮件; @序列化名称(“日期”) 私有字符串mDate; @序

正在尝试使用Gson库将JSON数组转换为对象列表

代码:

TypeToken-token=new-TypeToken(){}//此行引发以下异常
公共类注释实现可序列化{
@序列化名称(“id”)
私人int mID;
@序列化名称(“内容”)
私有字符串内容;
@序列化名称(“作者”)
私人字符串毛瑟;
@SerializedName(“作者id”)
莫托里德私人酒店;
@SerializedName(“作者电子邮件”)
私人电子邮件;
@序列化名称(“日期”)
私有字符串mDate;
@序列化名称(“名称”)
私有字符串mName;
@序列化名称(“图像”)
私有字符串图像;
公共int getmID(){
中途返回;
}
公共无效设置mID(int mID){
this.mID=mID;
}
公共字符串getmContent(){
返回mContent;
}
公共void setmContent(字符串mContent){
this.mContent=mContent;
}
公共字符串getmAuthor(){
返回毛索尔;
}
公共无效setmautor(字符串mautor){
this.mAuthor=mAuthor;
}
公共int getmAuthorID(){
返回莫托里德;
}
公共空间设置未经授权(未经授权){
this.mAuthorID=mAuthorID;
}
公共字符串getmAuthorEmail(){
返回电子邮件;
}
公共无效setmAuthorEmail(字符串mAuthorEmail){
this.mAuthorEmail=mAuthorEmail;
}
公共字符串getmDate(){
返回mDate;
}
公共void setmDate(字符串mDate){
this.mDate=mDate;
}
公共字符串getmName(){
返回mName;
}
公共void setmName(字符串mName){
this.mName=mName;
}
公共字符串getmImage(){
返回图像;
}
公共无效设置镜像(字符串镜像){
this.mImage=mImage;
}
}

公共类CommentListingActivity扩展BaseActivity实现View.OnClickListener{
私有静态最终字符串标记=“CommentListingActivity”;
私有ListView mListViewComments;
专用适配器mCommentAdapter;
private ArrayList mCommentList=new ArrayList();
私人ProgressBar mProgressBar;
私有TextView mTextViewErrorMessage;
私人按钮不新鲜;
私人线路布局图;
私有int mPostID;
私有布尔值isCommentListLoading=true;
私人编辑文本mEditTextComment;
私有ImageView-mImageViewSend;
私有InputMethodManager mInputMethodManager;
私人SwipeRefreshLayout mSwipeRefreshLayout;
私有布尔错误刷新=false;
私有int-mOffset=0;
私有视图mProgressBarView;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u comment\u列表);
mPostID=getIntent().getIntExtra(“postID”,0);
setToolbar();
setToolBarTitle(getString(R.string.commentsLabel));
设置工具栏HomeAsupEnabled(真);
mSwipeRefreshLayout=(SwipeRefreshLayout)findViewById(R.id.SwipeRefreshLayout);
mSwipeRefreshLayout.setOnRefreshListener(新的SwipeRefreshLayout.OnRefreshListener()){
@凌驾
公共void onRefresh(){
mSwipeRefreshLayout.setRefresh(false);
错误刷新=正确;
mOffset=0;
fetchComments();
}
});
mListViewComments=(ListView)findViewById(R.id.listViewComments);
mCommentAdapter=新的CommentAdapter(此、mCommentList、mImageLoader);
setAdapter(mCommentAdapter);
mProgressBarView=GetLayoutFlater().充气(R.layout.recyclerview\u loading\u item,null);
mListViewComments.addFooterView(mProgressBarView);
//设置自定义对话框组件-文本、图像和按钮
mEditTextComment=(EditText)findViewById(R.id.editTextComment);
mImageViewSend=(ImageView)findViewById(R.id.imageViewSend);
mImageViewSend.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
后命令();
}
});
mEditTextComment.requestFocus();
mInputMethodManager=(InputMethodManager)getSystemService(Context.INPUT\u方法\u服务);
mInputMethodManager.toggleSoftInput(InputMethodManager.SHOW_强制,0);
initProgressBar();
initErrorView();
mListViewComments.setOnScrollListener(新的EndlessScrollListener(){
@凌驾
公共布尔onLoadMore(int页,int totalItemsCount){
mOffset=mOffset+列表限制;
mListViewComments.addFooterView(mProgressBarView);
fetchComments();
返回true;
}
});
fetchComments();
}
私有void fetchComments(){
如果(!刷新错误(&mCommentAdapter.getCount()==0)
showProgressBar();
HashMap参数=新的HashMap();
parameters.put(“post”,String.valueOf(mPostID));
parameters.put(“offset”,String.valueOf(mOffset));
NetworkUtility.getJSONRquest(this,apirls.LIST_注释,参数,new Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
//删除加载项
如果(mCommentList.size()>0){
mListViewComments.removeFooterView(mProgressBarView);
}
试一试{
if(response.getString(API_KEY_STATUS).equalsIgnoreCase(API_response_SUCCESS)){
JSONArray jsonArrayComments=response.getJSONArray(API_KEY_数据);
if(jsonArrayComments.length()>0){
如果(刷新错误){
mCommentList.clear();
mCommentAdapter.notifyDataSetChanged();
}
TypeToken token=新的TypeToken(){};
mCommentList.addAll((集合您可以试试这个
更换这条线

TypeToken<List<Comment>> token = new TypeToken<List<Comment>>() {};
TypeToken-token=new-TypeToken(){};
用这个试试看

Type  token = new TypeToken<List<Comment>>() {}.getType();
List<Comment> commentsList = gson.fromJson(String.valueOf(resultArray), type);
Type-token=new-TypeToken(){}.getType();
List commentsList=gson.fromJson(String.valueOf(resultArray),类型);
您可以试试这个 更换这条线

TypeToken<List<Comment>> token = new TypeToken<List<Comment>>() {};
TypeToken-token=new-TypeToken(){};
用这个试试看

Type  token = new TypeToken<List<Comment>>() {}.getType();
List<Comment> commentsList = gson.fromJson(String.valueOf(resultArray), type);
Type-token=new-TypeToken(){
List<Comment> list=null;
String json="your json array";
    ObjectMapper mapper = new ObjectMapper();
    try {
        list= mapper.readValue(json, new TypeReference<List<Comment>>(){});
    } catch (IOException e) {
        throw new Exception(e);
    }