这不是您问题的解决方案,但我不再使用Eclipse自动生成的方法,而是使用Apache commons lang EqualsBuilder和HashCodeBuilder:

所以,例如你可以这样做:

import org.apache.commons.lang3.builder.EqualsBuilder;

import org.apache.commons.lang3.builder.HashCodeBuilder;

import org.apache.commons.lang3.builder.ReflectionToStringBuilder;

public class EqualsTest {

private String foo;

private int bar;

// getters and setters

@Override

public String toString() {

return ReflectionToStringBuilder.toString(this);

}

@Override

public int hashCode() {

return HashCodeBuilder.reflectionHashCode(this);

}

@Override

public boolean equals(Object obj) {

return EqualsBuilder.reflectionEquals(this, obj);

}

}这使用反射,添加字段时不需要更改。但是,还有其他选项可以指定要使用的字段,以及是否还要考虑超类的hashCode。

编辑:正如已经指出的那样,这种反思方面可能会产生一些性能损失。就个人而言,我不在生产代码中使用反射HashCodeBuilder或EqualsBuilder,我使用toHashCode(如下所示)。但是,我确实使用ReflectionToStringBuilder进行日志记录等。

下面是一个不使用反射的示例,但是在添加字段时需要添加另一行:

public int hashCode() {

// you pick a hard-coded, randomly chosen, non-zero, odd number

// ideally different for each class

return new HashCodeBuilder(17, 37).

append(foo).

append(bar).

toHashCode();

}有关hashCodeBuilder的更多讨论,请参阅apache commons equals/hashcode builder

java 日食,如何更新Java构造函数,等于,哈希等。在日食?相关推荐

  1. Java SE基础(更新中)

    Java的运行机制 Java SE基础(更新中) 基本语法 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的. 类名:对于所有的类来说,类名的首字母应该大写 ...

  2. 数据结构与算法-java笔记一 更新中

    数据结构与算法-java笔记一 更新中 数据结构与算法 什么是数据结构.算法 数据结构学了有什么用: 线性结构 数组 特点 应用 链表 存储结构 链表类型 单链表 双向链表 双向循环链表 链表与数组的 ...

  3. Java笔记--实时更新

    Java一学期复习 & 基础入门 前言 一.Java开发入门 1.1 Java概述 1.2 JDK, JRE, JVM 二.Java编程基础 2.1 基本语法 2.2 数据类型 2.3 运算符 ...

  4. Java 8状态更新

    即将到来的Java SE 8发行版的两大新语言功能是Lambda Expressions和Modularity. 对于这两者,这些天的状态更新已经发布. 我会与您共享链接,因此您可能会在假期中通读它们 ...

  5. 我的世界java刷怪数量_Minecraft我的世界Java版18w16a更新发布

    Minecraft我的世界Java版18w16a更新发布!Minecraft 1.13 仍未发布,18w16a为其第32个预览版.目前新版本已经基本完成了所有特性,现在更专注于漏洞修复和细节打磨了! ...

  6. Java 添加、更新和移除PDF超链接

    简介 PDF超链接用一个简单的链接包含了大量的信息,满足了人们在不占用太多空间的情况下渲染外部信息的需求.下面将介绍通过Java 在PDF中添加.更新和移除超链接. (一)工具使用: Free Spi ...

  7. [转载] Java重载、覆盖与构造函数

    参考链接: Java中的继承和构造函数 /** * 拷贝构造函数---Copyf t2 = new Copyf(t1);就不会在调用默认构造函数了. * 复制clone和引用 * 重载是在同一个类(范 ...

  8. 牛客网Java刷题知识点之构造函数可以调用一般函数,但是一般函数不可以直接调用构造函数...

    不多说,直接上干货! 通过 牛客网Java刷题知识点之构造函数是什么.一般函数和构造函数什么区别呢.构造函数的重载.构造函数的内存图解 我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会 ...

  9. java自动下载更新程序_android实现软件自动更新的步骤

    本篇文章是直接下载最新的APK安装的方法,并不是增量下载该APk. 想要实现一个android应用,自动更新下载APK软件的方法,我采取的是以下几步方法: 1.每次进入主界面时,获取服务器的数据,看是 ...

  10. java配置文件强制更新_对Java配置文件Properties的读取、写入与更新操作

    对Java配置文件Properties的读取.写入与更新操作 注:当前项目路径是 String filepath=System.getProperty("user.dir"); 对 ...

最新文章

  1. spark 算子例子_10年大数据架构师,用一文带你玩转Spark计算框架,你能读懂吗?...
  2. Mac OS使用技巧十八:Safari碉堡功能之一制作Widget
  3. [C++11]通过using定义基础类型和函数指针别名
  4. Update与JOIN使用
  5. AD教程系列 | 1-认识基本电子元器件、封装和读数
  6. n进制快速转化成10进制
  7. 开始使用Pyhton
  8. 解决手机邮箱登录学生邮箱时服务器无法连接的问题
  9. java 多语言_JAVA实现多语言
  10. 基于Tensorflow深度学习的ECG身份识别方法(二)
  11. 宋立波:让子弹飞和云安全
  12. 开学送礼最佳选择,有名的蓝牙耳机推荐
  13. 买卖股票系列(力扣121、122、123、188、309、714) Java动态规划
  14. Android studio开发-单界面单机小程序
  15. PADS打开PCB文件时出现提示:发生严重的运行时错误。
  16. Nacos中的@Value无法获取配置文件的值
  17. Unity封装MemoryStream进行内存读写
  18. php的mysqli步骤,php安装扩展mysqli的实现步骤及报错解决办法
  19. [热门游戏]今年“金酷”推出暗黑大作“魔界2”,邀你一起去探险。
  20. Unity PIC 打包assetBundle报错

热门文章

  1. 设计模式学习笔记(四)之工厂模式(Factory)
  2. IEEE 你吃透了吗?
  3. java多线程知识点之wait和sleep的区别
  4. Android NDK开发如何解决logcat日志打印不全
  5. 在mininet中测试TCP、UDP带宽并作图
  6. Android ProGuard 还原堆栈
  7. 【代码优化】使用enum代替int常量
  8. HDU2147 kiki's game
  9. Java与MySQL连接错误_mysql连接错误
  10. 重新挂载磁盘mysql重新建表_Linux重新挂载磁盘