Właśnie zacząłem używać kolekcji Guava Google (ComparisonChain i Objects). W moim POJO ja overiding metody equals, więc zrobiłem ten pierwszy:Co to jest korzyść używania ComparisonChain przez Objects.equal() i& Objects.equal() ... z Guava
return ComparisonChain.start()
.compare(this.id, other.id)
.result() == 0;
Jednak ja wtedy zrozumiałem, że mogę również użyć tego:
return Objects.equal(this.id, other.id);
I nie widzę, gdy łańcuch porównania byłoby lepiej, ponieważ możesz łatwo dodać dodatkowe warunki, takie jak:
return Objects.equal(this.name, other.name)
&& Objects.equal(this.number, other.number);
Jedyna korzyść, którą mogę zobaczyć, jeśli specjalnie potrzebujesz zwrotu int. Ma dwa dodatkowe wywołania metod (start i result) i jest bardziej skomplikowany dla nooba.
Czy istnieją oczywiste korzyści z ComparisonChain Brakuje mi?
(tak, ja też nadrzędnymi hashcode z odpowiednim Objects.hashcode()
)
Nigdy nie ma powodu, aby pisać "?true: false' w Javie. – SLaks
o tak, edytowane – NimChimpsky