diff options
Diffstat (limited to 'libjava/java/lang/String.java')
-rw-r--r-- | libjava/java/lang/String.java | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/libjava/java/lang/String.java b/libjava/java/lang/String.java index fa59986..bed3171 100644 --- a/libjava/java/lang/String.java +++ b/libjava/java/lang/String.java @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation +/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -32,13 +32,44 @@ public final class String implements Serializable, Comparable // but it will avoid showing up as a discrepancy when comparing SUIDs. private static final long serialVersionUID = -6849794470754667710L; - public static final Comparator CASE_INSENSITIVE_ORDER = new Comparator() - { - public int compare (Object o1, Object o2) + /** + * An implementation for {@link CASE_INSENSITIVE_ORDER}. + * This must be {@link Serializable}. + */ + private static final class CaseInsensitiveComparator + implements Comparator, Serializable + { + /** + * The default private constructor generates unnecessary overhead + */ + CaseInsensitiveComparator() {} + + /** + * Compares two Strings, using + * <code>String.compareToIgnoreCase(String)</code>. + * + * @param o1 the first string + * @param o2 the second string + * @return < 0, 0, or > 0 depending on the case-insensitive + * comparison of the two strings. + * @throws NullPointerException if either argument is null + * @throws ClassCastException if either argument is not a String + * @see #compareToIgnoreCase(String) + */ + public int compare(Object o1, Object o2) { - return ((String) o1).compareToIgnoreCase ((String) o2); + return ((String) o1).compareToIgnoreCase((String) o2); } - }; + } + + /** + * A Comparator that uses <code>String.compareToIgnoreCase(String)</code>. + * This comparator is {@link Serializable}. + * + * @since 1.2 + */ + public static final Comparator CASE_INSENSITIVE_ORDER + = new CaseInsensitiveComparator(); public String () { |