[LANG-1458] Add EMPTY_ARRAY constants to classes in
org.apache.commons.lang3.tuple
This commit is contained in:
parent
992e7cf6c8
commit
13354cd132
|
@ -53,7 +53,7 @@ public final class ImmutablePair<L, R> extends Pair<L, R> {
|
||||||
* @since 3.10.
|
* @since 3.10.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@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;
|
return (ImmutablePair<L, R>[]) EMPTY_ARRAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ public final class ImmutableTriple<L, M, R> extends Triple<L, M, R> {
|
||||||
* @since 3.10.
|
* @since 3.10.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@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;
|
return (ImmutableTriple<L, M, R>[]) EMPTY_ARRAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ public class MutablePair<L, R> extends Pair<L, R> {
|
||||||
* @since 3.10.
|
* @since 3.10.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@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;
|
return (MutablePair<L, R>[]) EMPTY_ARRAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ public class MutableTriple<L, M, R> extends Triple<L, M, R> {
|
||||||
* @since 3.10.
|
* @since 3.10.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@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;
|
return (MutableTriple<L, M, R>[]) EMPTY_ARRAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,51 @@ public abstract class Pair<L, R> implements Map.Entry<L, R>, Comparable<Pair<L,
|
||||||
/** Serialization version */
|
/** Serialization version */
|
||||||
private static final long serialVersionUID = 4954918890077093841L;
|
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>
|
* <p>Obtains an immutable pair of two objects inferring the generic types.</p>
|
||||||
*
|
*
|
||||||
|
|
|
@ -42,6 +42,52 @@ public abstract class Triple<L, M, R> implements Comparable<Triple<L, M, R>>, Se
|
||||||
/** Serialization version */
|
/** Serialization version */
|
||||||
private static final long serialVersionUID = 1L;
|
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>
|
* <p>Obtains an immutable triple of three objects inferring the generic types.</p>
|
||||||
*
|
*
|
||||||
|
|
|
@ -33,6 +33,19 @@ import org.junit.jupiter.api.Test;
|
||||||
*/
|
*/
|
||||||
public class PairTest {
|
public class PairTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEmptyArrayLength() {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
final Pair<Integer, String>[] empty = (Pair<Integer, String>[]) Pair.EMPTY_ARRAY;
|
||||||
|
assertEquals(0, empty.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEmptyArrayGenerics() {
|
||||||
|
final Pair<Integer, String>[] empty = Pair.emptyArray();
|
||||||
|
assertEquals(0, empty.length);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testComparable1() {
|
public void testComparable1() {
|
||||||
final Pair<String, String> pair1 = Pair.of("A", "D");
|
final Pair<String, String> pair1 = Pair.of("A", "D");
|
||||||
|
|
|
@ -30,6 +30,19 @@ import org.junit.jupiter.api.Test;
|
||||||
*/
|
*/
|
||||||
public class TripleTest {
|
public class TripleTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEmptyArrayLength() {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
final Triple<Integer, String, Boolean>[] empty = (Triple<Integer, String, Boolean>[]) Triple.EMPTY_ARRAY;
|
||||||
|
assertEquals(0, empty.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEmptyArrayGenerics() {
|
||||||
|
final Triple<Integer, String, Boolean>[] empty = Triple.emptyArray();
|
||||||
|
assertEquals(0, empty.length);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testComparable1() {
|
public void testComparable1() {
|
||||||
final Triple<String, String, String> triple1 = Triple.of("A", "D", "A");
|
final Triple<String, String, String> triple1 = Triple.of("A", "D", "A");
|
||||||
|
|
Loading…
Reference in New Issue