아래 편집기는 Java에서 두 개체의 속성을 기반으로 한 비교를 제공합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리도록 하겠습니다. 편집기를 따라가서 살펴보겠습니다.
두 객체가 동일한지 비교하는 방법에는 두 가지가 있습니다.
1. 상황 1: 두 객체가 동일한지 판단하는 경우 equals() 메서드를 재정의하면 됩니다. 여기서는 설명할 필요가 없습니다
2. 사례 2: 사례 1 외에도 어떤 속성이 다른지 알아야 하며, 그런 다음 클래스 리플렉션을 사용해야 합니다.
구체적인 코드는 다음과 같습니다. 팔로우:
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의 두 객체 속성에 대한 비교 및 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!