ReactiveBeacons
ReactiveBeacons copied to clipboard
HashCode and Equals?!
Wouldn't it be better just to use MacAddress for equals and hashcode? So you could compare them while observe and just list the current values of a specifiy beacon.
@Override public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Beacon beacon = (Beacon) o;
if (rssi != beacon.rssi) {
return false;
}
if (!device.equals(beacon.device)) {
return false;
}
return Arrays.equals(scanRecord, beacon.scanRecord);
}
@Override public int hashCode() {
int result = device.hashCode();
result = 31 * result + rssi;
result = 31 * result + (scanRecord != null ? Arrays.hashCode(scanRecord) : 0);
return result;
}
We can consider that. MacAddress
class was introduced later. It simply wraps and validates data coming from device.getAddress()
method. Moreover, device.hashCode()
method is used in hashCode()
generation for the Beacon
class. We should check if introducing MacAdress
in the hashCode()
and equals()
methods won't be redundant to calling device.hashCode()
method and using device
object.