解决使用GsonFromat插件生成实体类后造成的一个bug

Posted Tobey_r1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决使用GsonFromat插件生成实体类后造成的一个bug相关的知识,希望对你有一定的参考价值。

解决使用GsonFromat插件生成实体类后造成的一个bug

关于

在这里插入图片描述
  本篇也是简易音乐系列文章之一,上午的时候轮播图加载网易云音乐接口还能正常使用,下午想记录的时候程序一直提示系统繁忙,请稍后再试,但是我看console里面是获取到了banner数据,后来打印这个异常内容,提示如下:

com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected an int but was 2489379705 at line 1 column 7261 path $.banners[4].targetId

  这不就是json解析异常问题吗,还记得之前文章里面对onError方法进行了特殊判断吗,如下:

/**
     * 新增方法实现onError方法的返回提示(通用接口返回)
     */
    public static class OnCallback<T> implements Observer<T> {

        @Override
        public void onSubscribe(Disposable d) {

        }

        @Override
        public void onNext(T t) {

        }

        @Override
        public void onError(Throwable e) {
            if (!isNetWorkActive(App.getInstance())){
                ToastUtils.show("网络不给力,请检查网络");
                return;
            }
             if(e instanceof ConnectException){
                ToastUtils.show("服务器连接失败,请稍后再试");

            }else if(e instanceof SocketTimeoutException){
                ToastUtils.show("服务器连接超时,请稍后再试");

            }else{
                ToastUtils.show("系统繁忙,请稍后再试");

            }
        }

        @Override
        public void onComplete() {

        }
    }

  修改一下,添加json解析失败的一些监听:

  @Override
        public void onError(Throwable e) {
            if (!isNetWorkActive(App.getInstance())){
                ToastUtils.show("网络不给力,请检查网络");
                return;
            }if (e instanceof JsonParseException || e instanceof JSONException || e instanceof ParseException){
                ToastUtils.show("数据解析错误");
                
            }else if(e instanceof ConnectException){
                ToastUtils.show("服务器连接失败,请稍后再试");

            }else if(e instanceof SocketTimeoutException){
                ToastUtils.show("服务器连接超时,请稍后再试");

            }else{
                ToastUtils.show("系统繁忙,请稍后再试");

            }
        }

  然后我再运行项目,果然报的是"数据解析错误":
在这里插入图片描述
我们看到之前提示的Expected an int but was 2489379705 at line 1 column 7261 path $.banners[4].targetId,修改我们的banner_bean实体类里面的targetId为long,ok问题解决:
在这里插入图片描述
所以说,对gosnformat插件使用也不要完全放心,毕竟说不准就会出现这种字段类型的错误。

以上是关于解决使用GsonFromat插件生成实体类后造成的一个bug的主要内容,如果未能解决你的问题,请参考以下文章

SSH框架中新建立实体类后的配置

2021-7-28MyBatis逆向生成USER实体错误

springmvc学习笔记--mybatis--使用插件自动生成实体和mapper

Idea中Lombok插件的学习和使用

Dos.ORM修改数据遇到的问题

推荐一款IDEA插件,堪称后端接口自动生成神器!