У меня есть Long и String. Я хочу создать хэш обоих этих объектов. Это значит, что мне нужна функция, которая будет принимать произвольное количество объектов и возвращать мне одно хеш-значение. Выходит ли такая функция?
Long
String
Примерно так:
public int getHash(Object... objects) { //somehow returns a hash of all these objects }
Взгляните на Arrays.hashCode(Object[]).
Arrays.hashCode(Object[])
Он не принимает varargs, но вы можете обернуть его своей собственной библиотечной функцией varargs, если хотите:
public static int computeHashCode(Object... objects) { return Arrays.hashCode(objects); }
Apache Commons HashCodeBuilder имеет основанный на отражении вызов, аналогичный тому, что вы хотите.
public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); }