两个对象进行比较相等,有两种做法:
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两个对象属性比较相关推荐

  1. 遍历java对象属性_[Java教程]遍历对象属性

    [Java教程]遍历对象属性 0 2016-09-12 13:00:03 初始化对象:var person = function(name){ this._name = name;}var grand ...

  2. java 两个对象合并_Java 对象按照多个属性来合并。

    private static final String detailId="detailId"; private static final String shelfBinCode= ...

  3. Java比较两个对象属性值变化情况,用于记录日志使用

    2019独角兽企业重金招聘Python工程师标准>>> public class LogUtils<T> {/*** 对象比较器* 比较结果eg:1.字段名称loginN ...

  4. java两个对象赋值_一起学Java(二十六)----- 对象之间赋值

    不积跬步,无以至千里:不积小流,无以成江海. Java语言基础 Java对象之间赋值 赋值是用等号运算符" = "进行的,在对对象进行"赋值"时,实际就是将句柄 ...

  5. java类与对象(属性,方法)的使用

    ---恢复内容开始--- 类和对象是java编程中很重要的应该面向对象的一课,实际上可以将类看作对象的载体,它定义了对象所具有的功能.Java是面向对象的语言,因此掌握类与对象是学习Java语言的基础 ...

  6. 浅谈java 中set对象属性的优雅写法

    通常我们创建一个对象,比如说Student student = new Student(),里面有一大堆乱起八糟属性,我们后面new对象进行操作时,可能涉及到set属性值,可能导致这种情况: Stud ...

  7. java date oracle_java对象属性为date oracle数据库字段为Timestamp 处理方式

    解决方案 SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date da ...

  8. Java比较两个对象是否相同并获取值不同的属性

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站. 最新项目中要加操作日志,同时要把用户修改了那些字段记录下来,在更新的时候就需要比较之前的数据和现在的 ...

  9. JavaScript原生对象属性和方法详解——String对象

    length length 属性可返回字符串中的字符数目. length 是根据字符串的UTF-16编码来获取长度的,空字符串长度为0.length 不可修改. charAt() charAt() 方 ...

最新文章

  1. 利用javascript实现简体与繁体的转换
  2. 神仙尬聊!哲学马云VS科技马斯克:生活就该每周工作12小时,开特斯拉玩遍三千城市...
  3. xp文件夹怎么设置密码?压缩文件及Office文件加密方法
  4. java jtextarea字体_java – 更改JTextArea中不同行的字体
  5. 河北省国家电网计算机专业,河北省国家电网计算机类题目库.doc
  6. 周鸿祎IOT发布会思考
  7. 关于数据分析的4点心得:维度、指标、KPI
  8. linux shadow文件如何拷贝,Linux如何查找shadow文件进入?这样几步轻松搞定!
  9. jdbc postgresql mysql_jdbc无法连接postgresql数据库
  10. 快速部署PostgreSQL
  11. redies用途和使用场景
  12. 如何根据芯片手册时序图编写驱动程序
  13. 2010年中考英语写作高分指导
  14. 锁定关闭计算机快捷键,锁定电脑快捷键怎么更改?
  15. 学周刊杂志学周刊杂志社学周刊编辑部2022年第24期目录
  16. (已解决)Android Studio 模拟器连接不上问题
  17. 虾皮店铺优化有哪几个要点?
  18. Python-Flask
  19. Some of the continuous-integration tools that work with Ant (From Ant in Action 2nd Edition)
  20. DirectX 3D基础复习

热门文章

  1. 广告主成本怎么又超了!
  2. SpringBoot指南(八)——SpringBoot整合Redis
  3. 深度学习-吴恩达-笔记-1-深度学习引言
  4. 随机获取图片的api接口
  5. 计算机中丢失ENWeb,webapi session 丢失
  6. php 破解加密帖子,某PHP加密文件解密过程初探 · 浮萍’s Blog
  7. Soul网关源码阅读(十)自定义简单插件编写
  8. ubuntu 是基于debian gnu/linux,在 Ubuntu 或其它 GNU/Linux 系统下安装 Debian
  9. linux xwindow 权限,普通用户如何启动XWindow的问题
  10. java可以做网页吗_如果我用java 只会做网页,那么我会不会被淘汰?