2016-03-27 3 views
5

В Java 8 есть класс java.util.Objects, который содержит метод hashCode(). В то же время Google Guava 19 содержит com.google.common.base.Objects, что также имеет метод hashCode().Guava.Objects.hashCode vs Java.Objects.hashCode

Мои вопросы:

  1. Есть ли причина, почему я должен предпочесть гуавы 19-х hashCode() над в Java 8?
  2. Могу ли я полностью полагаться на Java 8 hashCode() или лучше остаться с Guava?
+1

Почему, по вашему мнению, реализация Guava будет лучше, чем новый встроенный? Также определите «лучше». – Tunaki

+2

Этот класс есть с Java 7 –

+0

Возможно, хэш Guava основан на лучшей/другой хеш-функции? –

ответ

13

метод гуавы в предшествует Java 7.

Метод Java с тем же именем, принимает только один аргумент. Но один из братьев java.util.Objects.hash() принимает переменное количество аргументов, например,Guava.

Если вы используете Java 7 или более позднюю версию, вы можете использовать java.util.Objects.hash(...). Guava documentation отмечает следующее:

Примечание для Java 7 и выше: этот метод следует рассматривать как устаревший; вместо этого используйте Objects.hash (java.lang.Object ...).

Если вы используете Java 6 или более раннюю версию, вы можете использовать метод Guava.