实体类中方法名尽量避免set,get,报错com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException)

自己建了一个实体类

public class MissPoint implements Serializable{
    
    private static final long serialVersionUID = -3623219494524321164L;

    /*** 时间*/
    private String date;
    
    /*** 酒店数 */
    private Integer count;
    
    /*** 酒店id*/
    private List<Integer> hotelList;
    
    /**需要查询的时间**/
    private Date occurDate;
    
    /**所有漏点的数据**/
    private List<DataMap> maps ;
    
    private Map<Date, List<Integer>> data = new HashMap<Date, List<Integer>>();
    
    public MissPoint() {
        // TODO Auto-generated constructor stub
    }
    
    public MissPoint(Date date,List<DataMap> maps) {
        // TODO Auto-generated constructor stub
        this.occurDate = date;
        this.maps = maps;
    }
    
    private void setData(){
        for(DataMap map : maps){
            int hotelid = map.getInt("hotel_id");
            List<Integer> indexList = DataPointHelper.findByIsZero(map.get("text"), 0, -1);
            
            for(Integer index : indexList){
                Date pointDate = DataPointHelper.getTimeByIndex(occurDate, index);
                
                if(data.containsKey(pointDate)){
                    data.get(pointDate).add(hotelid);
                }else{
                    List<Integer> list = new ArrayList<Integer>();
                    list.add(hotelid);
                    data.put(pointDate, list);
                }
            }
        }
    }
    
    public List<MissPoint> getList(){
        List<MissPoint> missPoints = new ArrayList<MissPoint>();
        this.setData();
        for(Map.Entry<Date, List<Integer>> entry : data.entrySet()){
            MissPoint point = new MissPoint();
            point.setDate(DateHelper.format(entry.getKey(), "yyyy-MM-dd HH:mm:ss"));
            point.setCount(entry.getValue().size());
            point.setHotelList(entry.getValue());
            
            missPoints.add(point);
        }
        return missPoints;
    }
    
    
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((date == null) ? 0 : date.hashCode());
        return result;
    }
    

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public List<Integer> getHotelList() {
        return hotelList;
    }

    public void setHotelList(List<Integer> hotelList) {
        this.hotelList = hotelList;
    }


    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        MissPoint other = (MissPoint) obj;
        if (date == null) {
            if (other.date != null)
                return false;
        } else if (!date.equals(other.date))
            return false;
        return true;
    }

    @Override
    public String toString() {
        return "[date=" + date + ", count=" + count
                + ", hotelList=" + hotelList + "]";
    }
    
}

其中给外界提供的方法写成了getList(),转json的时候一直报错,此类的list属性为空,纳闷了,找了半天没有找到名为list的属性,后来突发奇想,是不是那个getList(),让他以为我是获取属性list的值,但是又没有那个属性,所以空指针了,只能这么理解了,不知道对不对,反正改了方法名就不在报错了

原文地址:https://www.cnblogs.com/Cassie-wang/p/9714539.html