没有单参数构造函数/工厂方法



我有这样的代码:

final Person p = new Person(1L);
final ObjectMapper mapper = JacksonUtil.INSTANCE.getMapper();
final TypeReference<HashMap<String, Object>> typeMap = new TypeReference<HashMap<String, Object>>() {};
final String personJson= mapper.writeValueAsString(p);
mapper.readValue(personJson, typeMap);

personJson像:

"id" : 1

每当我有一个Long type在我的Json,它不工作,当我试图读取它。我有这个错误:

com.fasterxml.jackson.databind。JsonMappingException: Can not实例化类型[简单类型,类]的值org.codehaus.jackson.generated.java.lang。Number]源自整数;没有单参数构造函数/工厂方法

如何使其接受Long类型?映射器中是否有需要启用的特性?

在Person中创建一个构造函数,该构造函数接受一个整数(而不是像您那样长)。如果你一定要接受long类型,那么尝试创建一个接受Number类型的构造函数

在Person中创建一个构造函数,该构造函数接受一个整数(而不是像您那样长)。如果你确实想接受long类型,那么尝试创建一个接受Number类型的构造函数。假设您有一个像这样的bean/模型类

public class Person{
    private Long id;
    private String name;
    public Person() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Person(Long id) {
        super();
        this.id = id;
    }
    //getter and setter
}

这里第二个构造函数接受Long值

我希望你的

没有单参数构造函数/工厂方法

错误将消失

相关内容

  • 没有找到相关文章

最新更新