Я только начал использовать коллекцию 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 ()
)