Reuse constant for immutable cases.
This commit is contained in:
parent
766a8daa99
commit
bdaaeb5b1b
|
@ -51,7 +51,7 @@ public final class ImmutablePair<L, R> extends Pair<L, R> {
|
|||
*/
|
||||
// This is not defined with generics to avoid warnings in call sites.
|
||||
@SuppressWarnings("rawtypes")
|
||||
private static final ImmutablePair NULL = of(null, null);
|
||||
private static final ImmutablePair NULL = new ImmutablePair<>(null, null);
|
||||
|
||||
/** Serialization version */
|
||||
private static final long serialVersionUID = 4954918890077093841L;
|
||||
|
@ -111,7 +111,7 @@ public final class ImmutablePair<L, R> extends Pair<L, R> {
|
|||
* @return a pair formed from the two parameters, not null
|
||||
*/
|
||||
public static <L, R> ImmutablePair<L, R> of(final L left, final R right) {
|
||||
return new ImmutablePair<>(left, right);
|
||||
return left != null || right != null ? new ImmutablePair<>(left, right) : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -127,16 +127,7 @@ public final class ImmutablePair<L, R> extends Pair<L, R> {
|
|||
* @since 3.10
|
||||
*/
|
||||
public static <L, R> ImmutablePair<L, R> of(final Map.Entry<L, R> pair) {
|
||||
final L left;
|
||||
final R right;
|
||||
if (pair != null) {
|
||||
left = pair.getKey();
|
||||
right = pair.getValue();
|
||||
} else {
|
||||
left = null;
|
||||
right = null;
|
||||
}
|
||||
return new ImmutablePair<>(left, right);
|
||||
return pair != null ? new ImmutablePair<>(pair.getKey(), pair.getValue()) : ImmutablePair.NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -51,7 +51,7 @@ public final class ImmutableTriple<L, M, R> extends Triple<L, M, R> {
|
|||
*/
|
||||
// This is not defined with generics to avoid warnings in call sites.
|
||||
@SuppressWarnings("rawtypes")
|
||||
private static final ImmutableTriple NULL = of(null, null, null);
|
||||
private static final ImmutableTriple NULL = new ImmutableTriple<>(null, null, null);
|
||||
|
||||
/** Serialization version */
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -99,7 +99,7 @@ public final class ImmutableTriple<L, M, R> extends Triple<L, M, R> {
|
|||
* @return a triple formed from the three parameters, not null
|
||||
*/
|
||||
public static <L, M, R> ImmutableTriple<L, M, R> of(final L left, final M middle, final R right) {
|
||||
return new ImmutableTriple<>(left, middle, right);
|
||||
return left != null | middle != null || right != null ? new ImmutableTriple<>(left, middle, right) : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue