zoukankan      html  css  js  c++  java
  • 实体类中方法名尽量避免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的值,但是又没有那个属性,所以空指针了,只能这么理解了,不知道对不对,反正改了方法名就不在报错了

  • 相关阅读:
    【JAVA Swing】自定义弹出的无边提醒框(可自动消失)
    java比较器Comparator的简单使用
    BoneCP的简单使用
    鸿蒙的js开发部模式18:鸿蒙的文件上传到python服务器端
    【知识点前情提要】鸿蒙小白入门指南!跟着张荣超老师学鸿蒙
    分布式流转开发常见报错FAQ
    Ability之间或者进程间数据传递之对象(Sequenceable序列化)
    【资源下载】安卓VS鸿蒙第三方件切换宝典 V1.0
    鸿蒙开源第三方组件 ——B站开源弹幕库引擎的迁移(上)
    鸿蒙的js开发部模式17:鸿蒙的系统能力的应用模块
  • 原文地址:https://www.cnblogs.com/Cassie-wang/p/9714539.html
Copyright © 2011-2022 走看看