谷歌镜像 伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

java小知识,大智慧

来源:本站原创 浏览:100次 时间:2022-10-03

java知识面很多,如果想系统的学习java知识,最好是看完一本相关书籍,其实这本书籍不用是什么名人写的,只要他有几年的开发经验基本上可以写出一个入门级的java图书。所以我在这就不去讲一些整体框架的东西了,就说一下平常遇到的小问题吧。


小问题,大智慧哦。且看:

public class BatchQuery {    private Results results;    public class Results {        private String id;        private Result result;        public Results(){        }        public void setId(String id){            this.id = id;        }        public String getId(){            return this.id;        }        public void setResult(Result result){            this.result = result;        }        public Result getResult(){            return this.result;        }    }}


如果我按照一般情况下使用jackson对字符型数据反序列化的话会不会有问题,建议大家思考2分钟,好好看看代码哦

运行之后发现会报:


no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)


从字面意义上大家可以看出来,是告诉我们缺少构造函数导致的,但是我明确的在内部类中把默认的构造函数从新写了一遍,但是还出现这个问题


其实这个是一个老生常谈的问题了,表面看起来是关乎java的序列化和反序列化,首先官方对序列化和反序列化的解释为:

序列化:把对象转换为字节序列的过程称为对象的序列化。

反序列化:把字节序列恢复为对象的过程称为对象的反序列化。


但是答案为:把普通内部类配置为静态内部类,加static就可以正常运行了,由答案反推基本上可以确定跟序列化和反序列化的原理没有关系了


那问题基本上就要围绕java的静态内部类来深究了:

我查了网上的资料有一位同学的讲解很到位:非静态内部类(包括匿名内部类)被编译器通过隐藏的构造器传递了一组隐藏变量.直接结果就是, 无默认构造函数 -- 即使代码里面确实有一个无参的构造函数可以使用。

public class BatchQuery$Results{  private String id;  private BatchQuery.Result result;  public BatchQuery$Results(BatchQuery this$0) {}  public void setId(String id)  {    this.id = id;  }  public String getId()  {    return this.id;  }   public void setResult(BatchQuery.Result result)  {    this.result = result;  }  public BatchQuery.Result getResult()  {    return this.result;  }}

以上是编译后的内容,大家可以发现并没有零参数构造函数。这个就不能赖jackson返回缺少默认的构造函数了


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net