From 0cc03210d5d53d12604688f294b6ca39e3a025de Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 20 Jun 2015 09:35:26 -0700 Subject: altoslib/altosuilib: Fix equals methods, add hashCode Whenever we use a class as a HashMap key, that class needs to override the equals(Object) and hashCode() methods. Otherwise, the hash table won't work right. Signed-off-by: Keith Packard --- altosuilib/AltosBTDevice.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'altosuilib/AltosBTDevice.java') diff --git a/altosuilib/AltosBTDevice.java b/altosuilib/AltosBTDevice.java index 76221df2..d6eed64d 100644 --- a/altosuilib/AltosBTDevice.java +++ b/altosuilib/AltosBTDevice.java @@ -104,17 +104,20 @@ public class AltosBTDevice extends altos_bt_device implements AltosDevice { return false; } + public int hashCode() { + return getName().hashCode() ^ getAddr().hashCode(); + } + public boolean equals(Object o) { + if (o == null) + return false; + if (!(o instanceof AltosBTDevice)) return false; AltosBTDevice other = (AltosBTDevice) o; return getName().equals(other.getName()) && getAddr().equals(other.getAddr()); } - public int hashCode() { - return getName().hashCode() ^ getAddr().hashCode(); - } - public AltosBTDevice(String name, String addr) { AltosUILib.load_library(); libaltos.altos_bt_fill_in(name, addr,this); -- cgit v1.2.3