java 日食,如何更新Java构造函数,等于,哈希等。在日食?
这不是您问题的解决方案,但我不再使用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构造函数,等于,哈希等。在日食?相关推荐
- Java SE基础(更新中)
Java的运行机制 Java SE基础(更新中) 基本语法 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的. 类名:对于所有的类来说,类名的首字母应该大写 ...
- 数据结构与算法-java笔记一 更新中
数据结构与算法-java笔记一 更新中 数据结构与算法 什么是数据结构.算法 数据结构学了有什么用: 线性结构 数组 特点 应用 链表 存储结构 链表类型 单链表 双向链表 双向循环链表 链表与数组的 ...
- Java笔记--实时更新
Java一学期复习 & 基础入门 前言 一.Java开发入门 1.1 Java概述 1.2 JDK, JRE, JVM 二.Java编程基础 2.1 基本语法 2.2 数据类型 2.3 运算符 ...
- Java 8状态更新
即将到来的Java SE 8发行版的两大新语言功能是Lambda Expressions和Modularity. 对于这两者,这些天的状态更新已经发布. 我会与您共享链接,因此您可能会在假期中通读它们 ...
- 我的世界java刷怪数量_Minecraft我的世界Java版18w16a更新发布
Minecraft我的世界Java版18w16a更新发布!Minecraft 1.13 仍未发布,18w16a为其第32个预览版.目前新版本已经基本完成了所有特性,现在更专注于漏洞修复和细节打磨了! ...
- Java 添加、更新和移除PDF超链接
简介 PDF超链接用一个简单的链接包含了大量的信息,满足了人们在不占用太多空间的情况下渲染外部信息的需求.下面将介绍通过Java 在PDF中添加.更新和移除超链接. (一)工具使用: Free Spi ...
- [转载] Java重载、覆盖与构造函数
参考链接: Java中的继承和构造函数 /** * 拷贝构造函数---Copyf t2 = new Copyf(t1);就不会在调用默认构造函数了. * 复制clone和引用 * 重载是在同一个类(范 ...
- 牛客网Java刷题知识点之构造函数可以调用一般函数,但是一般函数不可以直接调用构造函数...
不多说,直接上干货! 通过 牛客网Java刷题知识点之构造函数是什么.一般函数和构造函数什么区别呢.构造函数的重载.构造函数的内存图解 我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会 ...
- java自动下载更新程序_android实现软件自动更新的步骤
本篇文章是直接下载最新的APK安装的方法,并不是增量下载该APk. 想要实现一个android应用,自动更新下载APK软件的方法,我采取的是以下几步方法: 1.每次进入主界面时,获取服务器的数据,看是 ...
- java配置文件强制更新_对Java配置文件Properties的读取、写入与更新操作
对Java配置文件Properties的读取.写入与更新操作 注:当前项目路径是 String filepath=System.getProperty("user.dir"); 对 ...
最新文章
- 在CentOS 7.7 x86_64上安装python3的selenium 3模块实录
- Vue源码终笔-VNode更新与diff算法初探
- 10篇一作SCI博士的走心分享--宏组学研究之“道”
- AC日记——热浪 codevs 1557 (最短路模板题)
- CCF CTO Club 官宣:活动Logo诞生啦!
- Chapter 1:Introduction
- windows已添加Pin码仍提示添加的解决方法
- codeforces C. Vanya and Scales
- 基于YOLOv3 与CRNN的中文自然场景文字检测与识别
- Vue的基础认知二---vue的双向绑定/vue获取DOM节点
- word保存不了磁盘已满_磁盘到底该不该分区?容量不够怎么办?
- Blocks的申明调用与Queue当做锁的用法
- (十进制高速幂+矩阵优化)BZOJ 3240 3240: [Noi2013]矩阵游戏
- 做减肥产品微商地推用什么做引流?如何选择转化率较高的地推方式
- Spring WebFlux - WebClient连接池简单测试和代码分析
- 什么编程语言的开发者平均年薪高达94万?
- 谷歌 TensorFlow Roadshow 北京站
- JavaScript中ubound函数
- 网站报错检查502 bad gateway是怎么回事?怎么解决?
- 3月16日-17日学习总结
热门文章
- 深入浅出 Cocoa 之 Core Data(3)- 使用绑定
- 纯软件归档产品的好处
- poj 3026 Borg Maze
- Debian5.0自动挂载U盘 - 使用pmount
- html获取xml的数据,xml格式获取值
- mysql 中like怎么用_mysql中like怎么用?
- [2018.07.31 T1] 第一题
- [2018.03.14 T2] 树(tree)
- 计算机导论的计算题,计算机导论复习题(选择部分)汇总
- java中的servlet_关于JavaWeb中Servlet的总结