递归版本完全正常
类org.hibernate.type.AbstractType
public int getHashCode(Object x) { if (x instanceof Object[]){ int result = 1; for (Object element : (Object[]) x) result = 31 * result + (element == null ? 0 : getHashCode(element)); return result; } return x.hashCode(); }和
public static boolean arraysEquals(Object[] a, Object[] a2) { if (a==a2) return true; if (a==null || a2==null) return false; int length = a.length; if (a2.length != length) return false; for (int i=0; i<length; i++) { Object o1 = a[i]; Object o2 = a2[i]; if (o1==null){ if (o2!=null) return false; }else{ if (o2==null) return false; if (o1 instanceof Object[]){ if (!(o2 instanceof Object[])) return false; else if (!arraysEquals( (Object[]) o1, (Object[]) o2)) return false; }else if (!o1.equals(o2)) return false; } } return true; } public static boolean equals(final Object x, final Object y) { if (x!=null && x instanceof Object[] && y!=null && y instanceof Object[] ) return arraysEquals((Object[])x, (Object[])y); return x == y || ( x != null && y != null && x.equals( y ) ); }


