From 8dfb3ff694e1322263dd0a4807ed858c1fbd98a4 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Thu, 23 Oct 2025 16:59:04 +0800 Subject: [PATCH] =?UTF-8?q?refactor!:=20=E5=B0=86=20`Ref`=20=E7=B1=BB?= =?UTF-8?q?=E4=BB=8E=20`base`=20=E5=8C=85=E7=A7=BB=E5=8A=A8=E5=88=B0=20`ut?= =?UTF-8?q?il`=20=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plusone/commons/base/package-info.java | 52 +------------------ .../plusone/commons/{base => util}/Ref.java | 2 +- .../commons/{base => util}/RefTests.java | 2 +- 3 files changed, 4 insertions(+), 52 deletions(-) rename plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/{base => util}/Ref.java (99%) rename plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/{base => util}/RefTests.java (97%) diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/package-info.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/package-info.java index a0600ae..84cdd82 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/package-info.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/package-info.java @@ -15,56 +15,7 @@ */ /** - *

基础组件

- * - *

1. Ref

- *

- * {@link Ref} 包装了一个值,表示对该值的应用。 - * - *

灵感来自于 C# 的 {@code ref} 参数修饰符。C# 允许通过以下方式,将值返回给调用端:

- *
- * void Method(ref int refArgument)
- * {
- *     refArgument = refArgument + 44;
- * }
- *
- * int number = 1;
- * Method(ref number);
- * Console.WriteLine(number); // Output: 45
- * 
- * {@link Ref} 使 Java 可以达到类似的效果,如: - *
- * void method(Ref<Integer> refArgument) {
- *     refArgument.transformValue(i -> i + 44);
- * }
- *
- * Ref<Integer> number = Ref.of(1);
- * method(number);
- * System.out.println(number.getValue()); // Output: 45
- * 
- *

- * 当一个方法需要产生多个结果时,无法有多个返回值,可以使用 {@link Ref} 作为参数传入,方法内部修改 {@link Ref} 的值。 - * 调用方在调用方法之后,使用 {@code getValue()} 获取结果。 - * - *

- * String method(Ref<Integer> intRefArgument, Ref<String> strRefArgument) {
- *     intRefArgument.transformValue(i -> i + 44);
- *     strRefArgument.setValue("Hello " + strRefArgument.getValue());
- *     return "Return string";
- * }
- *
- * Ref<Integer> number = Ref.of(1);
- * Ref<String> str = Ref.of("Java");
- * String result = method(number, str);
- * System.out.println(number.getValue()); // Output: 45
- * System.out.println(str.getValue()); // Output: Hello Java
- * System.out.println(result); // Output: Return string
- * 
- * - *

2. IWithCode

- *

- * 类似于枚举这样的类型,通常需要设置固定的码值表示对应的含义。 - * 可实现 {@link IWithCode}、{@link IWithIntCode}、{@link IWithLongCode},便于在需要的地方对这些接口的实现进行处理。 + * 基础内容 * * @author ZhouXY108 */ @@ -73,4 +24,5 @@ package xyz.zhouxy.plusone.commons.base; import javax.annotation.ParametersAreNonnullByDefault; + import javax.annotation.CheckReturnValue; diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/Ref.java similarity index 99% rename from plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java rename to plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/Ref.java index 98248f3..7b83f7e 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/Ref.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package xyz.zhouxy.plusone.commons.base; +package xyz.zhouxy.plusone.commons.util; import java.util.Objects; import java.util.function.Consumer; diff --git a/plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/base/RefTests.java b/plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/util/RefTests.java similarity index 97% rename from plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/base/RefTests.java rename to plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/util/RefTests.java index 6f7847d..ca76dfe 100644 --- a/plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/base/RefTests.java +++ b/plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/util/RefTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package xyz.zhouxy.plusone.commons.base; +package xyz.zhouxy.plusone.commons.util; import static org.junit.jupiter.api.Assertions.*;