You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2021/12/08 14:18:29 UTC

[commons-lang] 01/02: Reuse constant for immutable cases.

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git

commit bdaaeb5b1b1805d0a9b52a9c74b9a2b4531cc53c
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Dec 8 08:56:40 2021 -0500

    Reuse constant for immutable cases.
---
 .../org/apache/commons/lang3/tuple/ImmutablePair.java     | 15 +++------------
 .../org/apache/commons/lang3/tuple/ImmutableTriple.java   |  4 ++--
 2 files changed, 5 insertions(+), 14 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 7c52b6c..9e0d9bd 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java
@@ -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;
     }
 
     /**
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 5ea70e6..96ca8bf 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java
@@ -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;
     }
 
     /**