1.1 简述

我们知道一般@ToString@EqualsAndHashCode注解是加在子类上的,其它注解大同小异。

问题:使用继承时 调用@toString方法 默认不会输出父类中的字段。
解决:设置@ToString(callSuper = true)callSuper属性为true 就可以实现toString方法输出父类中继承的属性。
描述:默认有@ToString(callSuper = false),写不写都存在。

1.2 示例讲解

1.2.1 示例一

父类

子类

加了@ToString(callSuper = true)AccountCustom类上时:

问题:使用继承时 调用@EqualsAndHashCode(callSuper = false)方法,默认不会比较父类属性中的内容和HashCode
解决:设置@EqualsAndHashCode(callSuper = true)即可。

1.2.2 示例二

父类

子类

@EqualsAndHashCode(callSuper = false)时,父类和子类属性中的内容都一样时
没加注解和加了注解在XiamoMiTV类上时结果是一样的

@EqualsAndHashCode(callSuper = false)时,父类属性中的内容都一样,子类属性中的内容不一样时
没加注解和加了注解在XiamoMiTV类上时结果是一样的

@EqualsAndHashCode(callSuper = false)时,父类属性中的内容不一样,子类属性中的内容都一样时。
没加注解和加了注解在XiamoMiTV类上时结果是一样的:

@EqualsAndHashCode(callSuper = false)时,父类属性中的内容不一样,子类属性中的内容不一样时
没加注解和加了注解在XiamoMiTV类上时结果是一样的:

1.3 总结:

@EqualsAndHashCode(callSuper = false)写不写都存在,
这个默认不会调用父类的属性中的内容用来Equals判断和HashCode判断,
所以说只要子类的属性中的内容是一致则为true,不一致则为false
@EqualsAndHashCode(callSuper = true)
都会比较父类和子类的属性中内容,相当于就是所有的属性中的内容一致则为true,不一致则为false

callSuper = true的用法思考相关推荐

  1. @EqualsAndHashCode(callSuper = true/false) 作用

    首先 @EqualsAndHashCode 标在子类上 1. callSuper = true,根据子类自身的字段值和从父类继承的字段值 来生成hashcode,当两个子类对象比较时,只有子类对象的本 ...

  2. pythonwhile true循环_python学习-while True的用法

    在学习过程中,经常能遇到采用while True的用法.下面以一个例子进行说明: 建立一个用户登录系统,用户输入用户名和密码,如果正确就可以进入系统. 1.我自己最开始的写法: d = {} #数据库 ...

  3. python小知识|if x、if not x、while True的用法,还在困扰着你吗?(补加:关于None的小知识)

    python小知识|if x.if not x.while True的用法,还在困扰着你吗?(补加:关于None的小知识) 一.条件判断语句简写 1.if x 与 if not x 2.None的小知 ...

  4. overflowhidden用法思考

      今天在群里(54430674)交流高度自适应问题,linxz℡推荐使用: height:auot;min-height:100px !important; 或 height:auto;overfl ...

  5. python中while true的用法_解析Python中while true的使用

    无限循环 如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例: #!/usr/bin/python # -*- coding: UTF-8 -*- var = 1 while var ...

  6. python中return true的用法_Return True/False何时使用它而不是Return

    类比:函数是一个准备好执行任务并给出答案的可克隆助手.任务由函数的参数定义(括号内的内容).让我们重写这些名称以赋予它们语义意义(即说明我们期望的名称).在def isXGreaterThanY(.. ...

  7. 简单说 !![]==true 与 []==true 引发的思考 1

    说明 直接说出问题 !![] == true //结果是true [] == true //结果是false ![] == [] //结果是true 为什么会出现这种情况 解释 首先说一下,如果你看到 ...

  8. 【工作记录】java方法返回多个值(用法思考、比较)

    用java写业务逻辑的时候,有时候一个方法可能需要返回多个出参,当中可能有List,String,Map等不同类型的数据结构,针对这种情况,我的解决策略一般是使用Map的形式来解决,具体分析请浏览下文 ...

  9. python中return true的用法_python中 return 的用法

    return 语句就是讲结果返回到调用的地方,并把程序的控制权一起返回 程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个return. 要返回两个数值,写成一行即可: de ...

最新文章

  1. 利用Reachability实现网络状态监听
  2. 京东自动评论脚本_京东时光机python脚本 自动完成任务
  3. Codeforces Round #709 (Div. 1) C. Skyline Photo dp + 单调栈优化
  4. python求字符串的所有子集_打印一字符串的所有子集 | 学步园
  5. jQuery版三级联动案例
  6. Linux Shell基础 - Shell 脚本的执行方式
  7. linux usb 同步传输,从设备到主机的用户模式USB等时传输
  8. 【shell 练习5】编写简单的多级菜单
  9. 安装ps2021后,解决adobe一直发送消息的办法
  10. 51单片机之DS18B20
  11. 中国移动CMPP短信开发平台通讯包 2.8
  12. 百度小程序如何引流?给用户带来了更便捷、更人性化的体验
  13. 微信加密某一个人私聊?微信私密聊天
  14. python字符串这一篇就够了
  15. Dcat-Admin自定义Excel数据导出
  16. 经常说的ROI是什么,怎么计算
  17. 学计算机有什么好处和坏处,学习电脑有什么好处和坏处,电脑好处和坏处有哪些?...
  18. 算法的时间复杂度(大O表示法)
  19. Shellcode生成工具Donut测试分析
  20. 2019年秋季学期实验室安全考试2

热门文章

  1. Adobe国际认证|防止剽窃:学生和教育工作者指南
  2. 1509. 柠檬水找零
  3. Java中常用WEB服务器和应用服务器
  4. 毛哥的快乐生活(30) 说起模型这这个词,你就知道我要认真了
  5. c语言编程实验室机房设备管理,c语言编程机房收费管理系统
  6. DM8:Linux下实现disql命令上下翻动
  7. 机器学习-最小二乘法1
  8. 对象/关系数据库映射.
  9. 三生石·奈何桥·孟婆汤
  10. 是时候结束对IE6的批评了