@Override
    protected boolean mutatesTo(Object oldInstance, Object newInstance) {
        if(null == oldInstance || null == newInstance){
            return false;
        }
        
        if(!oldInstance.getClass().isArray() || !newInstance.getClass().isArray()){
            return false;
        }
        
        // both are array
        int l1 = Array.getLength(oldInstance);
        int l2 = Array.getLength(newInstance);
        Class<?> cType1 = oldInstance.getClass().getComponentType();
        Class<?> cType2 = newInstance.getClass().getComponentType();
        if(l1 == l2 && cType1.equals(cType2)){
            return true;
        }
        
        return false;
    }