diff options
author | Gary Gregory <gardgregory@gmail.com> | 2019-05-10 09:10:40 -0400 |
---|---|---|
committer | Gary Gregory <gardgregory@gmail.com> | 2019-05-10 09:10:40 -0400 |
commit | 13354cd13269bdf9d1cbe7356f770f8ed8eb2f09 (patch) | |
tree | b67bdca34d56e7cfb1fab5b5f833e5fc26607603 /src/main/java/org/apache/commons/lang3/tuple | |
parent | 992e7cf6c8cb1a83c23f2499efe06856ca8b59c4 (diff) | |
download | apache-commons-lang-13354cd13269bdf9d1cbe7356f770f8ed8eb2f09.tar.gz |
[LANG-1458] Add EMPTY_ARRAY constants to classes in
org.apache.commons.lang3.tuple
Diffstat (limited to 'src/main/java/org/apache/commons/lang3/tuple')
6 files changed, 95 insertions, 4 deletions
diff --git a/src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java b/src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java index 39d1effb3..e494e12b6 100644 --- a/src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java +++ b/src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java @@ -53,7 +53,7 @@ public final class ImmutablePair<L, R> extends Pair<L, R> { * @since 3.10. */ @SuppressWarnings("unchecked") - public static final <L, R> ImmutablePair<L, R>[] emptyArray() { + public static <L, R> ImmutablePair<L, R>[] emptyArray() { return (ImmutablePair<L, R>[]) EMPTY_ARRAY; } diff --git a/src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java b/src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java index b35234030..2588f6afa 100644 --- a/src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java +++ b/src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java @@ -55,7 +55,7 @@ public final class ImmutableTriple<L, M, R> extends Triple<L, M, R> { * @since 3.10. */ @SuppressWarnings("unchecked") - public static final <L, M, R> ImmutableTriple<L, M, R>[] emptyArray() { + public static <L, M, R> ImmutableTriple<L, M, R>[] emptyArray() { return (ImmutableTriple<L, M, R>[]) EMPTY_ARRAY; } diff --git a/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java b/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java index d0e06d938..a4800713a 100644 --- a/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java +++ b/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java @@ -48,7 +48,7 @@ public class MutablePair<L, R> extends Pair<L, R> { * @since 3.10. */ @SuppressWarnings("unchecked") - public static final <L, R> MutablePair<L, R>[] emptyArray() { + public static <L, R> MutablePair<L, R>[] emptyArray() { return (MutablePair<L, R>[]) EMPTY_ARRAY; } diff --git a/src/main/java/org/apache/commons/lang3/tuple/MutableTriple.java b/src/main/java/org/apache/commons/lang3/tuple/MutableTriple.java index 15db8b9e4..4cf9474c5 100644 --- a/src/main/java/org/apache/commons/lang3/tuple/MutableTriple.java +++ b/src/main/java/org/apache/commons/lang3/tuple/MutableTriple.java @@ -50,7 +50,7 @@ public class MutableTriple<L, M, R> extends Triple<L, M, R> { * @since 3.10. */ @SuppressWarnings("unchecked") - public static final <L, M, R> MutableTriple<L, M, R>[] emptyArray() { + public static <L, M, R> MutableTriple<L, M, R>[] emptyArray() { return (MutableTriple<L, M, R>[]) EMPTY_ARRAY; } diff --git a/src/main/java/org/apache/commons/lang3/tuple/Pair.java b/src/main/java/org/apache/commons/lang3/tuple/Pair.java index 55f1f8ac3..1a25f1739 100644 --- a/src/main/java/org/apache/commons/lang3/tuple/Pair.java +++ b/src/main/java/org/apache/commons/lang3/tuple/Pair.java @@ -43,6 +43,51 @@ public abstract class Pair<L, R> implements Map.Entry<L, R>, Comparable<Pair<L, /** Serialization version */ private static final long serialVersionUID = 4954918890077093841L; + private static final class PairAdapter<L, R> extends Pair<L, R> { + + private static final long serialVersionUID = 1L; + + @Override + public L getLeft() { + return null; + } + + @Override + public R getRight() { + return null; + } + + @Override + public R setValue(R value) { + return null; + } + + } + + /** + * An empty array. + * <p> + * Consider using {@link #emptyArray()} to avoid generics warnings. + * </p> + * + * @since 3.10. + */ + public static final Pair<?, ?>[] EMPTY_ARRAY = new PairAdapter[0]; + + /** + * Returns the empty array singleton that can be assigned without compiler warning. + * + * @param <L> the left element type + * @param <R> the right element type + * @return the empty array singleton that can be assigned without compiler warning. + * + * @since 3.10. + */ + @SuppressWarnings("unchecked") + public static <L, R> Pair<L, R>[] emptyArray() { + return (Pair<L, R>[]) EMPTY_ARRAY; + } + /** * <p>Obtains an immutable pair of two objects inferring the generic types.</p> * diff --git a/src/main/java/org/apache/commons/lang3/tuple/Triple.java b/src/main/java/org/apache/commons/lang3/tuple/Triple.java index c139a6c27..f99f24636 100644 --- a/src/main/java/org/apache/commons/lang3/tuple/Triple.java +++ b/src/main/java/org/apache/commons/lang3/tuple/Triple.java @@ -42,6 +42,52 @@ public abstract class Triple<L, M, R> implements Comparable<Triple<L, M, R>>, Se /** Serialization version */ private static final long serialVersionUID = 1L; + private static final class TripleAdapter<L, M, R> extends Triple<L, M, R> { + + private static final long serialVersionUID = 1L; + + @Override + public L getLeft() { + return null; + } + + @Override + public M getMiddle() { + return null; + } + + @Override + public R getRight() { + return null; + } + + } + + /** + * An empty array. + * <p> + * Consider using {@link #emptyArray()} to avoid generics warnings. + * </p> + * + * @since 3.10. + */ + public static final Triple<?, ?, ?>[] EMPTY_ARRAY = new TripleAdapter[0]; + + /** + * Returns the empty array singleton that can be assigned without compiler warning. + * + * @param <L> the left element type + * @param <M> the middle element type + * @param <R> the right element type + * @return the empty array singleton that can be assigned without compiler warning. + * + * @since 3.10. + */ + @SuppressWarnings("unchecked") + public static <L, M, R> Triple<L, M, R>[] emptyArray() { + return (Triple<L, M, R>[]) EMPTY_ARRAY; + } + /** * <p>Obtains an immutable triple of three objects inferring the generic types.</p> * |