diff --git a/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java b/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java index b33e7b4..2201f32 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java @@ -1,6 +1,7 @@ package xyz.zhouxy.plusone.commons.base; import java.util.Objects; +import java.util.function.Consumer; import java.util.function.UnaryOperator; import com.google.common.annotations.Beta; @@ -10,6 +11,10 @@ public final class Ref { private T value; + public Ref() { + this.value = null; + } + public Ref(T value) { this.value = value; } @@ -22,10 +27,22 @@ public final class Ref { this.value = value; } - public void apply(UnaryOperator operator) { + public void transform(UnaryOperator operator) { this.value = operator.apply(this.value); } + public boolean isNull() { + return this.value == null; + } + + public boolean isNotNull() { + return this.value != null; + } + + public void execute(Consumer consumer) { + consumer.accept(value); + } + @Override public String toString() { return String.format("Ref[%s]", value); diff --git a/src/test/java/xyz/zhouxy/plusone/commons/util/RefTests.java b/src/test/java/xyz/zhouxy/plusone/commons/util/RefTests.java index 6f76bd2..c75bb83 100644 --- a/src/test/java/xyz/zhouxy/plusone/commons/util/RefTests.java +++ b/src/test/java/xyz/zhouxy/plusone/commons/util/RefTests.java @@ -24,7 +24,7 @@ class RefTests { } void apply(Ref strRef) { - strRef.apply(str -> "Hello " + str); + strRef.transform(str -> "Hello " + str); } @Test