Wpis z mikrobloga

@moriturius: Mam wrażenie, że to jest wygenerowane przez lntelliJ. Tam możesz zaznaczyć parę pól, na podstawie których ma być generowany hash, i on wtedy generuje taką sekwencję ifów. Pewnie dla jednego pola nie robi inaczej.
@LeftShift: IntelliJ może generować na kilka sposobów, ale żaden nie robi tego tak źle :)

Ustawienie Java7+:

public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Test test = (Test) o;
return Objects.equals(hello, test.hello);
}

Ustawienie IntelliJ Default:

public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
@LeftShift: Czytając Twój wpis zastanawiałem się co tu jest problemem ;) Czy to, że komentujesz najprawdopodobniej automatycznie generowany kod dla equalsa? Czy sam fakt zabawnego zwracania wartości boolean (który jednak czasami ma rację bytu)? A może chodzi o to, ze ID jest obiektem lub co zabawniejsze - prymitywem w obiekcie (autoboxing) (co jednak nie jest tutaj jednoznacznie określone)?
@Grizwold: Fajne!
A teraz będzie tak zwane "badum-tss". Szukając wczoraj tego buga, klęłam motzno na naszego praktykanta, podejrzewanego o implementację tego equals() w BaseEntity, po której dziedziczą wszystkie nasze klasy modelowe. Ale gdy zrobiłam git blame'a wyszło, że...