java两个对象属性比较
两个对象进行比较相等,有两种做法:
1,情况一:当仅仅只是判断两个对象是否相等时,只需重写equals()方法即可。这里就不用说明
2.情况二:当除了情况一之外,还需知道是那个属性不同,那么就需要采用类反射,具体代码如下:
public static void main(String[] args) {
A a = new A();
a.setUserName("a");
a.setPassword("p");
a.setQq("q");
a.setWechat("w");
A b = new A();b.setUserName("a");b.setPassword("p");b.setQq("q");b.setWechat("ww");//只是比较两个对象是否相等,那么直接重写equals方法System.out.println( a.equals(b));try {Map<String, String> maps = compare( a, b );System.out.println();} catch (Exception e) {e.printStackTrace();}
}public static <T> Map<String, String> compare(T obj1, T Obj2)throws Exception {Map<String, String> result = new HashMap<String, String>();Field[] fs = obj1.getClass().getDeclaredFields();for (Field f : fs) {f.setAccessible(true);Object v1 = f.get(obj1);Object v2 = f.get(Obj2);if( ! equals(v1, v2) ){result.put(f.getName(), String.valueOf(equals(v1, v2)));}}return result;
}public static boolean equals(Object obj1, Object obj2) {if (obj1 == obj2) {return true;}if (obj1 == null || obj2 == null) {return false;}return obj1.equals(obj2);
}
java两个对象属性比较相关推荐
- 遍历java对象属性_[Java教程]遍历对象属性
[Java教程]遍历对象属性 0 2016-09-12 13:00:03 初始化对象:var person = function(name){ this._name = name;}var grand ...
- java 两个对象合并_Java 对象按照多个属性来合并。
private static final String detailId="detailId"; private static final String shelfBinCode= ...
- Java比较两个对象属性值变化情况,用于记录日志使用
2019独角兽企业重金招聘Python工程师标准>>> public class LogUtils<T> {/*** 对象比较器* 比较结果eg:1.字段名称loginN ...
- java两个对象赋值_一起学Java(二十六)----- 对象之间赋值
不积跬步,无以至千里:不积小流,无以成江海. Java语言基础 Java对象之间赋值 赋值是用等号运算符" = "进行的,在对对象进行"赋值"时,实际就是将句柄 ...
- java类与对象(属性,方法)的使用
---恢复内容开始--- 类和对象是java编程中很重要的应该面向对象的一课,实际上可以将类看作对象的载体,它定义了对象所具有的功能.Java是面向对象的语言,因此掌握类与对象是学习Java语言的基础 ...
- 浅谈java 中set对象属性的优雅写法
通常我们创建一个对象,比如说Student student = new Student(),里面有一大堆乱起八糟属性,我们后面new对象进行操作时,可能涉及到set属性值,可能导致这种情况: Stud ...
- java date oracle_java对象属性为date oracle数据库字段为Timestamp 处理方式
解决方案 SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date da ...
- Java比较两个对象是否相同并获取值不同的属性
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站. 最新项目中要加操作日志,同时要把用户修改了那些字段记录下来,在更新的时候就需要比较之前的数据和现在的 ...
- JavaScript原生对象属性和方法详解——String对象
length length 属性可返回字符串中的字符数目. length 是根据字符串的UTF-16编码来获取长度的,空字符串长度为0.length 不可修改. charAt() charAt() 方 ...
最新文章
- 利用javascript实现简体与繁体的转换
- 神仙尬聊!哲学马云VS科技马斯克:生活就该每周工作12小时,开特斯拉玩遍三千城市...
- xp文件夹怎么设置密码?压缩文件及Office文件加密方法
- java jtextarea字体_java – 更改JTextArea中不同行的字体
- 河北省国家电网计算机专业,河北省国家电网计算机类题目库.doc
- 周鸿祎IOT发布会思考
- 关于数据分析的4点心得:维度、指标、KPI
- linux shadow文件如何拷贝,Linux如何查找shadow文件进入?这样几步轻松搞定!
- jdbc postgresql mysql_jdbc无法连接postgresql数据库
- 快速部署PostgreSQL
- redies用途和使用场景
- 如何根据芯片手册时序图编写驱动程序
- 2010年中考英语写作高分指导
- 锁定关闭计算机快捷键,锁定电脑快捷键怎么更改?
- 学周刊杂志学周刊杂志社学周刊编辑部2022年第24期目录
- (已解决)Android Studio 模拟器连接不上问题
- 虾皮店铺优化有哪几个要点?
- Python-Flask
- Some of the continuous-integration tools that work with Ant (From Ant in Action 2nd Edition)
- DirectX 3D基础复习
热门文章
- 广告主成本怎么又超了!
- SpringBoot指南(八)——SpringBoot整合Redis
- 深度学习-吴恩达-笔记-1-深度学习引言
- 随机获取图片的api接口
- 计算机中丢失ENWeb,webapi session 丢失
- php 破解加密帖子,某PHP加密文件解密过程初探 · 浮萍’s Blog
- Soul网关源码阅读(十)自定义简单插件编写
- ubuntu 是基于debian gnu/linux,在 Ubuntu 或其它 GNU/Linux 系统下安装 Debian
- linux xwindow 权限,普通用户如何启动XWindow的问题
- java可以做网页吗_如果我用java 只会做网页,那么我会不会被淘汰?