private int _hashCode ( Object values ) { int valueHash = 0 ; if ( values instanceof Object [ ] ) valueHash = Arrays . deepHashCode ( ( Object [ ] ) values ) ; else if ( values instanceof byte [ ] ) valueHash = Arrays . hashCode ( ( byte [ ] ) values ) ; else if ( values instanceof short [ ] ) valueHash = Arrays . hashCode ( ( short [ ] ) values ) ; else if ( values instanceof int [ ] ) valueHash = Arrays . hashCode ( ( int [ ] ) values ) ; else if ( values instanceof long [ ] ) valueHash = Arrays . hashCode ( ( long [ ] ) values ) ; else if ( values instanceof char [ ] ) valueHash = Arrays . hashCode ( ( char [ ] ) values ) ; else if ( values instanceof float [ ] ) valueHash = Arrays . hashCode ( ( float [ ] ) values ) ; else if ( values instanceof double [ ] ) valueHash = Arrays . hashCode ( ( double [ ] ) values ) ; else if ( values instanceof boolean [ ] ) valueHash = Arrays . hashCode ( ( boolean [ ] ) values ) ; else if ( values != null ) valueHash = values . hashCode ( ) ; return valueHash ; }
copy from Array . deepHashCode0