diff --git a/luna/src/main/java/org/classdump/luna/ArrayByteString.java b/luna/src/main/java/org/classdump/luna/ArrayByteString.java index 92a6d7d3..4bea4631 100644 --- a/luna/src/main/java/org/classdump/luna/ArrayByteString.java +++ b/luna/src/main/java/org/classdump/luna/ArrayByteString.java @@ -87,6 +87,14 @@ class ArrayByteString extends ByteString { return hc; } + @Override + public int compareTo(ByteString that) { + if (that instanceof ArrayByteString bstring) + return Arrays.compare(bytes, bstring.bytes); + + return super.compareTo(that); + } + @Override int maybeHashCode() { return hashCode; diff --git a/luna/src/main/java/org/classdump/luna/StringByteString.java b/luna/src/main/java/org/classdump/luna/StringByteString.java index 2b0e2d09..2d64dc24 100644 --- a/luna/src/main/java/org/classdump/luna/StringByteString.java +++ b/luna/src/main/java/org/classdump/luna/StringByteString.java @@ -96,6 +96,14 @@ class StringByteString extends ByteString { return thisIterator.hasNext() == thatIterator.hasNext(); } + @Override + public int compareTo(ByteString that) { + if (that instanceof StringByteString bstring) + return string.compareTo(bstring.string); + + return super.compareTo(that); + } + private int computeHashCode() { int hc = 0;