Несколько дней назад мы перешли на Java 7 в мою компанию - наконец! Jay\o/Итак, я узнал о классе Objects
и был удивлен, как были реализованы методы hashCode()
и equals()
, что уменьшило количество кода boylerplate по сравнению с теми, которые были созданы eclipse по умолчанию (ALT + SHIFT + S → H).
Мне было интересно, могу ли я изменить поведение по умолчанию генерируемого eclipse hashCode()
и equals()
?
Мне бы хотелось увидеть это:
@Override
public int hashCode()
{
return Objects.hash(one, two, three, four/*, ...*/);
}
вместо этого:
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((one == null) ? 0 : one.hashCode());
result = prime * result + ((two == null) ? 0 : two.hashCode());
result = prime * result + ((three == null) ? 0 : three.hashCode());
result = prime * result + ((four== null) ? 0 : four.hashCode());
// ...
return result;
}
То же самое относится к equals()
. Это статья Я получил это от.
Любые идеи, как реализовать это лучше всего?