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的用户。
所以我的问题是:我可以以某种方式去/不序列化不变的对象没有默认的构造函数?
java 不允许默认构造_java – 如何使用ObjectMapper去除/序列化不可变对象而不使用默认构造函数?...相关推荐
- java 编码实现内存拷贝_java提高篇(六)-----使用序列化实现对象的拷贝
我们知道在Java中存在这个接口Cloneable,实现该接口的类都会具备被拷贝的能力,同时拷贝是在内存中进行,在性能方面比我们直接通过new生成对象来的快,特别是在大对象的生成上,使得性能的提升非常 ...
- java 捕获异常并存入数据库_java异常处理,报异常的话怎么处理对象值,并持久化到数据库中...
展开全部 //没看到有人回e68a843231313335323631343130323136353331333365646233答你,我还没学到框架,不知道那个是不是可以很便捷操作你说的这样过程 / ...
- java 不要科学计数法_java – 设置Jackson ObjectMapper类不要使用科学记数法来表示double...
我相信这是一个java问题.如果你调试你的程序,你的Double将始终科学地显示,所以我们想要的是强制它成为一个字符串.这可以通过多种方式在Java中实现,您可以在这里查找: 关于你关于杰克逊的具体问 ...
- java获取前端json数据_java如何获取前端ajax传来的json对象
假设使用 jQuery 中的 ajax 1. Json 对象 前端代码示例 $.ajax({ url : 'http://localhost:8888/demo', type: 'post', dat ...
- java子类继承父类实际_java子类继承父类,是否生成父类对象?
从根本上来说,对象就是一个特殊结构的内存以及可以访问这块内存的代码.所以你这个问题其实就是一个到底如何看什么是对象的. 我不了解现在jvm的具体实现,所以只能就理论上进行下分析. 由于现代的编译器都可 ...
- java 类锁如何获得_Java Synchronized获得类的锁和获得对象的锁有什么区别呢?
对象锁&类锁 对象锁 当一个对象中有synchronized method或synchronized block的时候调用此对象的同步方法或进入其同步区域时,就必须先获得对象锁.如果此对象的对 ...
- java list map 去重复_Java中List集合去除重复数据的六种方法
1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list. ...
- java创建一个不可变对象_使用不可变对象创建值对象
java创建一个不可变对象 在回答我最近的文章中AutoValue:生成的不可变的值类 , 布兰登认为,这可能是有趣的,看看如何AutoValue比较项目Lombok和Immutables和凯文借调这 ...
- Java™ 教程(不可变对象)
不可变对象 如果一个对象的状态在构造后不能改变,则该对象被认为是不可变的,对不可变对象的最大依赖被广泛认为是一种创建简单.可靠代码的合理策略. 不可变对象在并发应用程序中特别有用,由于它们不能改变状态 ...
最新文章
- Opencv各种滤波实现
- CentOS使用sudo提示用户不在sudoers文件中的解决方法
- SpringMVC的请求-获得请求参数-获得请求头信息
- Linux root用户无法打开Chrome或则chromium(kali)
- 自己开发的ABAP代码版本查看工具
- 分支语句复习 java 9018
- matlab cgf sc 未定义,matlab通用神經網絡代碼
- JavaScriptjQuery.带参数的函数
- Java 二十五载,正在 Kotlin 化!
- SpringCloud学习之Hystrix
- 解析卷积神经网络学习笔记——魏秀参
- ESAYUI filebox 隐藏
- 计算机应用技术专业就业方向分析
- 线性方程组(六)- 线性方程组的应用
- vite如何兼容低版本浏览器
- mysql cpu 高 原因 汇总_MySQL CPU 使用率高的原因和解决方法(来自aliyun官方文档)
- Wopus问答第一期
- 分布式ssh_使用SSH的分布式管理
- 缺失数据填补基础方法(2)——Random Forest (MissForest)填补
- mui从iframe页面跳转到应用根目录页面
热门文章
- Animation Property Animation 使用
- Material Design综合实例
- 数据结构之堆栈与队列
- Java8 Stream详解~归约(reduce)
- Spring Data JPA 从入门到精通~自定义实现Repository
- 在Amazon FreeRTOS V10中使用运行时统计信息
- python进程监控 supervisor_使用Python的Supervisor进行进程监控以及自动启动
- Exception in thread “main“ java.io.FileNotFoundException: C:\Temp (拒绝访问。)
- JAVA入门级教学之(if语句)
- 小学生 计算机编程 教程,面向小学生的C ++有趣编程(第一卷)配置教学资源课件完整版...