В SO Я прочитал несколько ответов, связанных с реализацией hashcode и предложением использовать оператор XOR. (Например, Why are XOR often used in java hashCode() but another bitwise operators are used rarely?).Hashcode generated by Eclipse
Когда я использую Eclipse, чтобы создать функцию Hashcode где field
является объектом и timestamp
длинными, выход:
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ field == null) ? 0 : field.hashCode());
return result;
}
Есть ли какая-либо причина, не используя оператор XOR, как показано ниже?
result = prime * result + (int) (timestamp^(timestamp >>> 32));
Я вижу XOR здесь 'prime * result + (int) (timestamp^(timestamp >>> 32))' ... –
@Heuster это его недостаток EDIT. На самом деле Eclipse создает только эту строку 'result = prime * result + field == null)? 0: field.hashCode()); ' – Jayamohan