实体类中方法名尽量避免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 hotelList;

    /**需要查询的时间**/
    private Date occurDate;

    /**所有漏点的数据**/
    private List maps ;

    private Map> data = new HashMap>();

    public MissPoint() {
        // TODO Auto-generated constructor stub
    }

    public MissPoint(Date date,List 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 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 list = new ArrayList();
                    list.add(hotelid);
                    data.put(pointDate, list);
                }
            }
        }
    }

    public List getList(){
        List missPoints = new ArrayList();
        this.setData();
        for(Map.Entry> 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 getHotelList() {
        return hotelList;
    }

    public void setHotelList(List 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的值,但是又没有那个属性,所以空指针了,只能这么理解了,不知道对不对,反正改了方法名就不在报错了

Original: https://www.cnblogs.com/Cassie-wang/p/9714539.html
Author: 背着核的桃子
Title: 实体类中方法名尽量避免set,get,报错com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/589683/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java线程数过多解决之路——利用Arthas解决Jenkins线程数飙升问题

    背景 Jenkins是基于Java开发的一款持续集成工具,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。同时,Jenkins 提供了数量庞大的各种插 件,以满足用户对…

    Java 2023年6月9日
    0124
  • SpringBoot Bean指定初始化顺序详解

    转自:https://blog.csdn.net/zzhongcy/article/details/109504563 最近遇到SpringBoot容器外类初始化依赖容器内bean…

    Java 2023年5月30日
    0140
  • 2022-8-31 jsp el表达式

    jsp 注意:1、JSP脚本片段中只能出现java代码,不能出现HTML元素。在 访问JSP时,JSP引擎翻译JSP页面中的脚本片段。2、JSP脚本片段中的java代码必须严格遵守…

    Java 2023年6月13日
    068
  • 记录一次NoSuchMethodError问题的解决

    一、问题描述 今天在执行单元测试时遇到了一个NoSuchMethodError错误,完整的报错信息如下: … Caused by: javax.validation.Valid…

    Java 2023年6月15日
    072
  • java常规技术题

    一:线程的基本状态以及状态之间的关系1.新建状态:新创建了一个线程对象2.就绪状态:也叫可运行状态,线程对象创建后,其他线程调用了该对象的start()方法。3.运行状态:就绪状态…

    Java 2023年6月5日
    090
  • 使springAOP生效不一定要加@EnableAspectJAutoProxy注解

    在上篇文章《springAOP和AspectJ有关系吗?如何使用springAOP面向切面编程》中遗留了一个问题,那就是在springboot中使用springAOP需要加@Ena…

    Java 2023年6月9日
    081
  • 数据库架构演变概要

    一. 背景 为了适应业务增长,数据库数据量快速增长,性能日趋下降,稳定性不佳的实际情况,急需架构逐步演变适应未来的业务发展。 二. 现状 【稳定性】数据库为单点,没有高可用和稳定性…

    Java 2023年6月8日
    066
  • java C 类自动转换规则

    C类型转换规则 posted @2018-05-05 21:34 zengkefu 阅读(194 ) 评论() 编辑 Original: https://www.cnblogs.c…

    Java 2023年5月29日
    088
  • JSP基础知识总结

    JSP概述 什么是 jsp Servlet 程序输出 html 页面 如何创建一个 jsp 动态页面程序 如何修改 jsp 文件的默认编码 jsp 的运行原理 jsp 的语法 js…

    Java 2023年6月15日
    083
  • 【Java中的线程】java.lang.Thread 类分析

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月9日
    092
  • 浅谈Spring Data ElasticSearch

    Spring Data Spring Data 帮助我们避免了一些样板式代码,比如我们要定义一个接口,可以直接继承接口ElasticSearchRepository接口,这样Spr…

    Java 2023年5月30日
    069
  • 面试突击68:为什么 TCP 需要 3 次握手?

    TCP 三次握手是一道经典的面试题,它是指 TCP 在传递数据之前,需要进行 3 次交互才能正式建立起连接,并进行数据传递。TCP 之所以需要 3 次握手是因为 TCP 双方都是全…

    Java 2023年5月29日
    0103
  • 引迈信息惊喜周年庆 多重优惠劲爆来袭

    posted @2022-09-30 10:59 迈阿蜜 阅读(10 ) 评论() 编辑 Original: https://www.cnblogs.com/jnpf001/p/1…

    Java 2023年6月5日
    064
  • 双路快速排序以及三路排序算法

    目录 双路快速排序 一、概念及其介绍 二、适用说明 三、过程图示 四、Java 实例代码 三路排序算法 一、概念及其介绍 二、适用说明 三、过程图示 四、Java 实例代码 双路快…

    Java 2023年6月5日
    0102
  • Spring Boot启动流程源码解析

    定义: BeanFactoryPostProcessor:是一个接口,它允许自定义修改应用程序上下文的beanDefiinition BeanDefinitionRegistryP…

    Java 2023年6月14日
    058
  • 识别 UTF-8 编码

    思路:如果GBK中文字节流我们使用 UTF-8 编码,会出现未知字符�,字节代表数字为 -65, -67。所以先尝试用 utf-8 编码,然后获取字节流,判断其中是否存在未知字符。…

    Java 2023年6月9日
    0101
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球