В чем преимущество использования ComparisonChain по сравнению с Objects.equal () && Objects.equal ()… с Guava

Я только начал использовать коллекцию Google Guava ( ComparisonChain и Объекты ). В моем pojo я перебрал метод equals, поэтому я сначала сделал это:

return ComparisonChain.start()
         .compare(this.id, other.id)
         .result() == 0;

Однако затем я понял, что могу также использовать это:

return Objects.equal(this.id, other.id);

И я не вижу, когда цепочка сравнения была бы лучше, так как вы можете легко добавить дополнительные условия, например так:

return Objects.equal(this.name, other.name) 
       && Objects.equal(this.number, other.number);

Единственное преимущество, которое я вижу, если вам конкретно нужен возвращаемый int. Он имеет два дополнительных вызова метода (start и result) и является более сложным к нубу.

Есть ли очевидные преимущества ComparisonChain , которых мне не хватает?

(Да, я также заменяю хэш-код соответствующим Objects.hashcode () )

12
задан Xaerxess 13 December 2011 в 08:04
поделиться