在Web项目中,我们经常会设计一些与界面相对应的JavaBean作为Entity,而为了兼容前台传入的空值,有些字段我们会用包装类型而不是基本类型。可是往往我的Entity已经设计完成,很多时候我们会在原来的Entity基础上修改字段返回值类型,而不是删去重写。于是问题就来了,一些大意的同学仅仅把属性的基本类型(如long)改为包装类型(如Long),而并没有将setter/getter的类型一起修改。
这种情况会报错,而且报的错经常会让人摸不着头脑。下面列举了一种情况,是利用com.fasterxml.jackson将Entity序列化为Json字符串时出现上述疏忽报的错误:
com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: Student["sid"])
我的Entity如下:
public class Student { private Long sid; private String name; public long getSid() { return sid; } public void setSid(long sid) { this.sid = sid; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
这种Entity的写法会在不同场合报不同的错误,本文仅列出这一种情况,后续遇到再补充。
共勉!
Edit by Jimmy
2014.09.18
时间: 2024-10-10 15:06:40