Hi eveyone, 我有一个如何比较两个大VO对象是否相等的问题,请大家帮忙,谢谢比如有两个比较大的同一VO对象,里面有大约1000个String类型的字段,我想判断这两个对象是否相等,原则是所有的字段都相等不区分大小写(如果为null的字段视为相等),请问各位有什么好的方法吗?

解决方案 »

  1.   

    字符串不区分大小写比较使用
    boolean equalsIgnoreCase(String anotherString) 
              Compares this String to another String, ignoring case considerations.比较前, 先判断字符串是否为null, 如果不为null, 再使用equalsignoreCase来比较.
    每个对象都要比较这2000个字符串, 看样子是比较耗时的.String str1 = "abc";
    String str2 = "Abc";str1. equalsIgnoreCase(str2);结果为true
      

  2.   

    如果不影响其它业务,override equals和hashCode方法吧。
    判断的时候只要合理利用短路就行了。 不过终究是比较麻烦的。
    或者干脆用reflection做可能代码看上去会简单些。