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