Я только что начал использовать коллекцию гуавы в Google ( ComparisonChain и Objects ).В моем 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.Он имеет два дополнительных вызова метода (начало и результат) и является более сложным для нуба.
Существуют ли очевидные преимущества ComparisonChain Я пропустил?
(Да, я также переопределяю хэш-код с помощью соответствующего Objects.hashcode()
)