java 不允许默认构造_java – 如何使用ObjectMapper去除/序列化不可变对象而不使用默认构造函数?...

我想使用com.fasterxml.jackson.databind.ObjectMapper对不可变对象进行序列化和反序列化。

不可变类看起来像这样(只有3个内部属性,getter和constructor):

public final class ImportResultItemImpl implements ImportResultItem {

private final ImportResultItemType resultType;

private final String message;

private final String name;

public ImportResultItemImpl(String name, ImportResultItemType resultType, String message) {

super();

this.resultType = resultType;

this.message = message;

this.name = name;

}

public ImportResultItemImpl(String name, ImportResultItemType resultType) {

super();

this.resultType = resultType;

this.name = name;

this.message = null;

}

@Override

public ImportResultItemType getResultType() {

return this.resultType;

}

@Override

public String getMessage() {

return this.message;

}

@Override

public String getName() {

return this.name;

}

}

但是当我运行这个单元测试时:

@Test

public void testObjectMapper() throws Exception {

ImportResultItemImpl originalItem = new ImportResultItemImpl("Name1", ImportResultItemType.SUCCESS);

String serialized = new ObjectMapper().writeValueAsString((ImportResultItemImpl) originalItem);

System.out.println("serialized: " + serialized);

//this line will throw exception

ImportResultItemImpl deserialized = new ObjectMapper().readValue(serialized, ImportResultItemImpl.class);

}

我得到这个例外:

com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class eu.ibacz.pdkd.core.service.importcommon.ImportResultItemImpl]: can not instantiate from JSON object (missing default constructor or creator, or perhaps need to add/enable type information?)

at [Source: {"resultType":"SUCCESS","message":null,"name":"Name1"}; line: 1, column: 2]

at

... nothing interesting here

这个异常要求我创建一个默认构造函数,但这是一个不可变的对象,所以我不想拥有它。它将如何设置内部属性?这将完全混淆API的用户。

所以我的问题是:我可以以某种方式去/不序列化不变的对象没有默认的构造函数?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java方法不可覆盖_详解Java构造方法为什么不能覆盖,我的钻牛角尖病又犯了.......

一看Think in Java,遇到个程序classEgg2 {protected classYolk {publicYolk() {System.out.println("Egg2.Yolk()");}public voidf() {System.out.println("Egg2.Yolk.f()");}}private Yolk y newYolk();publicEgg2() {System.out.println(&qu…

有人去瑞幸咖啡java_瑞幸股价暴跌,门店竟然爆单了

本文首发于“全天候科技”作者姚心璐。欢迎下载“见闻VIP”,即时见证历史。昨晚至今,有人被瑞幸疯狂打了1.8折,有人疯狂用1.8折券买入瑞幸咖啡。是不是看上去很迷?这的确是冰火两重天一样的真实存在。4月2日,瑞幸自曝2…

我的世界java版做船_“不要在云了,船的合成用木铲?”我的世界:Java和基岩版的差异...

“不要在云了,你这个云玩家!”不知道你没有没有因为某些原因被网友说成是MC的云玩家,我就听到过一个很冤枉的故事。一个已经玩了5年之久的基岩版玩家,被一个玩了一年Java版的玩家硬生生说成是一个云玩家,重点不是这&am…

mysql 5.5免安装配置_mysql的参考文档mysql5.5.21免安装版的配置方法

mysql的5.5版本(与5.1版本有所区别)中my.ini文件的内容。在mysql根目录里新建my.ini文件,用阅读器打开(加入如下内容)[client]#password your_passwordport 3306socket /tmp/mysql.sockdefault-character-setutf8[mysqld]port 3306socket /tmp/mysql.sockskip-…

appium java 点击事件_java – 无法使用Appium在Android中的权限对话框中单击“允许”按钮...

我无法使用AppiumJava在Android的权限对话框中点击“拒绝”或“允许”按钮.在点击这些按钮之前,是否需要添加任何功能?以下是代码:DesiredCapabilities capabilities new DesiredCapabilities();capabilities.setCapability("platformName", …

java线程interu_Intel 10nm服务器U首曝:多线程性能提升118%

Intel 10nm Ice Lake已经应用在轻薄本平台上,当时频率先天不足,而且只能做到4核心,不得不同时祭出14nm Comet Lake予以辅助,而在游戏本、桌面上也不得不继续依赖14nm Comet Lake。根据路线图,服务器平台上Intel今年会先…

java面板换一个斜的圆形_java – 如何从底部设计圆形视图?

我想设计一个从底部是圆形的视图,请看图像I have try different way to design, Like XML, Programatically but I am not able to get any success. I use XML code it’s doing circle from bottom but when I use Any image or Banner slider as show in figure then it’s …

K8S学习指南(38)-k8s权限管理对象 Group

文章目录 引言Group基本概念1. Group是什么?2. Group的作用3. 与用户的关系 Group的创建方式1. 手动创建Group2. 用户创建Group Group示例演示步骤一:创建Group步骤二:创建Role和RoleBinding步骤三:验证Group权限 结论 引言 在Ku…

java异常标记_java异常机制

------------------------------------------------------------------下面是一些java异常集-------------------------------------------------------------------------------------------算术异常类:ArithmeticExecption空指针异常类:NullPointerExc…

JAVA物体运动检测_基于OpenCv的运动物体检测算法

#include #include #include #include int main( int argc, char** argv )//声明IplImage指针IplImage* pFrame NULL;IplImage* pFrImg NULL;IplImage* pBkImg NULL;CvMat* pFrameMat NULL;CvMat* pFrMat NULL;CvMat* pBkMat NULL;CvCapture* pCapture NULL;int nFrmNum…

oracle删除多条从js到java_一次oracle大量数据删除经历

oracle有个数据表现在已经有2500万条数据了,软件用到这个表的数据时就变的特别慢,所以准备把一个月以前的数据全部清除。我的步骤是(下边操作都是在plsql中运行的)1、首先 将这个月的数据导出到一个临时表中(这些数据是自己希望保留的)create table temp…

polymorphism java_Java基础-面向对象第三大特性之多态(polymorphism)

Java基础-面向对象第三大特性之多态(polymorphism)作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。一.多态概述多态是继封装,继承之后,面向对象的第三大特性,多态的前提是继承。从…

java如何把png转换成jpg_Java实现将png格式图片转换成jpg格式图片的方法【测试可用】...

Java实现将png格式图片转换成jpg格式图片的方法【测试可用】发布于 2020-4-9|复制链接摘记: 本文实例讲述了Java实现将png格式图片转换成jpg格式图片的方法。分享给大家供大家参考,具体如下:javaimport java.awt.Color;import java.awt.image.BufferedIm…

php反序列化漏洞 freebuf,最全的PHP反序列化漏洞的理解和应用

原创:f1r3K0php反序列化漏洞,又叫php对象注入漏洞,是一种常见的漏洞,在我们进行代码审计以及CTF中经常能够遇到。01学习前最好提前掌握的知识PHP类与对象(https://www.php.net/manual/zh/language.oop5.php)PHP魔术方法(https://s…

php按数字分页类,PHP简单实现数字分页功能示例

本文实例讲述了PHP简单实现数字分页功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;header ( Content-Type: text/html; charsetutf-8 );//分页$page$_GET[page];$allcount 100;$page_size 10;$page_show 5;$page_count ceil($allcount/$page_size);if($page <…

php 瀑布流布局,CSS3实现瀑布流布局的方法

这次给大家带来CSS3实现瀑布流布局的方法&#xff0c;CSS3实现瀑布流布局的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。以前使用瀑布流都要用js&#xff0c;现在有了css3&#xff0c;可以轻松实现了。掌握点&#xff1a;1、column-count 把p中的文本…

php 文章列表,ThinkPHP初学者:主页,获取一个文章列表

在之前的文章&#xff0c;已经实现了注册登录的功能&#xff0c;主要熟悉TP与HTML、JS交互&#xff0c;数据库的基本操作等。接下来就要登录到主页&#xff0c;熟悉一下列表的处理&#xff0c;以及数据库多表联查操作。为了简化模型&#xff0c;列表的字段仅有文章标题、简介、…

JAVA中数字格式异常,java - Java数字格式异常 - 堆栈内存溢出

当我遇到NumberFormatException时&#xff0c;我正在CodeChef平台上解决问题。首先&#xff0c;我使用Scanner处理输入&#xff0c;然后使用BufferedReader 。 但是他们都不起作用&#xff01;这是我的代码&#xff1a;import java.io.*;import java.util.*;import java.text.*…

java excel 打勾,两种方法教你如何在excel文件中打勾

两种方法教你如何在excel文件中打勾方法一&#xff1a;通过复选框功能打勾本方法是通过Excel文件中的开发工具栏中的功能实现打勾的。有时候如果我们在Excel文件中找不到“开发工具”功能&#xff0c;这时我们可以通过“Excel选项”功能来进行设置。首先我们点击Excel文件左上角…

数字图像matlab心得,Matlab数字图像处理的学习建议

如果是软实力,学好数学才是王道!和机器学习和计算机视觉相关的数学(转载)(以下转自一位MIT牛人的空间文章&#xff0c;写得很实际&#xff1a;)作者&#xff1a;Dahua感觉数学似乎总是不够的。这些日子为了解决research中的一些问题&#xff0c;又在图书馆捧起了数学的教科书。…