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

2025-05-29 0 93

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

1、情况一:当仅仅只是判断两个对象是否相等时,只需重写equals()方法即可。这里就不用说明

2、情况二:当除了情况一之外,还需知道是那个属性不同,那么就需要采用类反射,

具体代码如下:

?

1

2

3

4

5

6
public static void main(String[] args) {

A a = new A();

a.setUserName("a");

a.setPassword("p");

a.setQq("q");

a.setWechat("w");

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46
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中两个对象属性比较就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持快网idc。

原文链接:http://www.cnblogs.com/heavenTang/p/7608253.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 基于java中两个对象属性的比较 https://www.kuaiidc.com/114386.html

相关文章

发表评论
暂无评论