diff --git a/src/main/java/org/apache/commons/lang3/Range.java b/src/main/java/org/apache/commons/lang3/Range.java index 9bdd0c3d4..6ede4f7ee 100644 --- a/src/main/java/org/apache/commons/lang3/Range.java +++ b/src/main/java/org/apache/commons/lang3/Range.java @@ -28,12 +28,32 @@ */ public final class Range implements Serializable { + /** + * Required for serialization support. + * + * @see java.io.Serializable + */ private static final long serialVersionUID = 1L; + /** + * The ordering scheme used in this range. + */ private final Comparator comparator; + + /** + * The minimum value in this range (inclusive). + */ private final T minimum; + /** + * The maximum value in this range (inclusive). + */ private final T maximum; + /** + * Cached output toString (class is immutable). + */ + private transient String toString = null; + /** *

Constructs a new Range using the specified * element as both the minimum and maximum in this range.

@@ -320,16 +340,18 @@ public int hashCode() { */ @Override public String toString() { - StringBuilder buf = new StringBuilder(32); - buf.append("Range["); - buf.append(this.minimum); - buf.append(','); - buf.append(this.maximum); - buf.append(']'); - return buf.toString(); + if (toString == null) { + StringBuilder buf = new StringBuilder(32); + buf.append("Range["); + buf.append(this.minimum); + buf.append(','); + buf.append(this.maximum); + buf.append(']'); + toString = buf.toString(); + } + return toString; } - // Taken from Commons Collections - documentation removed as not a public class private static class ComparableComparator> implements Comparator, Serializable {