Java's equality is stupid

This commit is contained in:
Tony Garnock-Jones 2011-01-06 09:15:11 -05:00
parent d0e6e89ffb
commit 3ce415e106
2 changed files with 11 additions and 1 deletions

View File

@ -59,7 +59,7 @@ public class ServerApi {
public synchronized Object create(String nodeClassName, Object arg) throws InterruptedException, SexpSyntaxError {
send("factory", SexpMessage.create(nodeClassName, arg, _container.getName(), _kName));
SexpList reply = _nextReply();
String selector = reply.getBytes(0).getDataString();
SexpBytes selector = reply.getBytes(0);
if (selector.equals(SexpMessage._create_ok)) return null;
assert selector.equals(SexpMessage._create_failed);
return reply.get(1);

View File

@ -6,6 +6,7 @@ package hop;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Arrays;
/**
*/
@ -31,4 +32,13 @@ public class SexpBytes {
public String toString() {
return SexpWriter.writeString(this);
}
public boolean equals(Object other) {
return (other instanceof SexpBytes) &&
Arrays.equals(_bytes, ((SexpBytes) other).getData());
}
public int hashCode() {
return Arrays.hashCode(_bytes);
}
}