这不是您问题的解决方案,但我不再使用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. 在CentOS 7.7 x86_64上安装python3的selenium 3模块实录
  2. Vue源码终笔-VNode更新与diff算法初探
  3. 10篇一作SCI博士的走心分享--宏组学研究之“道”
  4. AC日记——热浪 codevs 1557 (最短路模板题)
  5. CCF CTO Club 官宣:活动Logo诞生啦!
  6. Chapter 1:Introduction
  7. windows已添加Pin码仍提示添加的解决方法
  8. codeforces C. Vanya and Scales
  9. 基于YOLOv3 与CRNN的中文自然场景文字检测与识别
  10. Vue的基础认知二---vue的双向绑定/vue获取DOM节点
  11. word保存不了磁盘已满_磁盘到底该不该分区?容量不够怎么办?
  12. Blocks的申明调用与Queue当做锁的用法
  13. (十进制高速幂+矩阵优化)BZOJ 3240 3240: [Noi2013]矩阵游戏
  14. 做减肥产品微商地推用什么做引流?如何选择转化率较高的地推方式
  15. Spring WebFlux - WebClient连接池简单测试和代码分析
  16. 什么编程语言的开发者平均年薪高达94万?
  17. 谷歌 TensorFlow Roadshow 北京站
  18. JavaScript中ubound函数
  19. 网站报错检查502 bad gateway是怎么回事?怎么解决?
  20. 3月16日-17日学习总结

热门文章

  1. 深入浅出 Cocoa 之 Core Data(3)- 使用绑定
  2. 纯软件归档产品的好处
  3. poj 3026 Borg Maze
  4. Debian5.0自动挂载U盘 - 使用pmount
  5. html获取xml的数据,xml格式获取值
  6. mysql 中like怎么用_mysql中like怎么用?
  7. [2018.07.31 T1] 第一题
  8. [2018.03.14 T2] 树(tree)
  9. 计算机导论的计算题,计算机导论复习题(选择部分)汇总
  10. java中的servlet_关于JavaWeb中Servlet的总结