基于java中两个对象属性的比较

发布时间 - 2026-01-11 03:28:07    点击率:

两个对象进行比较相等,有两种做法:

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比较对象大小两种常用方法  # Java比较两个对象是否相等的方法  # Java各种比较对象的方式的对比总结  # 在Java中如何比较两个对象浅析  # Java中对象的比较操作实例分析  # Java 中比较对象的用法小结  # JAVA中对象常见的几种方法比较  # 给大家  # 重写  # 只需  # 希望能  # 这篇  # 有两种  # 还需  # 小编  # 大家多多  # String  # args  # Map  # static  # void  # main  # setUserName  # ww  # setQq  # setWechat  # println 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  HTML 中如何正确使用模板变量为元素的 name 属性赋值  Bootstrap整体框架之CSS12栅格系统  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  JavaScript常见的五种数组去重的方式  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何快速启动建站代理加盟业务?  如何快速登录WAP自助建站平台?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  微信小程序 五星评分(包括半颗星评分)实例代码  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  php485函数参数是什么意思_php485各参数详细说明【介绍】  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  Laravel如何实现API速率限制?(Rate Limiting教程)  详解Android图表 MPAndroidChart折线图  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  利用python获取某年中每个月的第一天和最后一天  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  大连网站制作公司哪家好一点,大连买房网站哪个好?  canvas 画布在主流浏览器中的尺寸限制详细介绍  如何在万网自助建站中设置域名及备案?  JavaScript Ajax实现异步通信  如何有效防御Web建站篡改攻击?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何注册花生壳免费域名并搭建个人网站?  WEB开发之注册页面验证码倒计时代码的实现  nodejs redis 发布订阅机制封装实现方法及实例代码  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  深圳网站制作培训,深圳哪些招聘网站比较好?  如何在七牛云存储上搭建网站并设置自定义域名?  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  Laravel如何实现一对一模型关联?(Eloquent示例)  Laravel怎么清理缓存_Laravel optimize clear命令详解  在线制作视频网站免费,都有哪些好的动漫网站?  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程