From 1b8a5634b363dfb07d3a74ec308a83ef7af27ef5 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Mon, 19 May 2025 17:28:45 +0800 Subject: [PATCH] =?UTF-8?q?refactor!:=20`BasePropertyValidator`=20?= =?UTF-8?q?=E7=9A=84=20`between`=20=E6=96=B9=E6=B3=95=E9=87=8D=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E4=B8=BA=20`inRange`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. `BasePropertyValidator` 的 `between` 方法重命名为 `inRange`,更符合语义; 2. 将判空作为规则的一部分。 --- .../BaseComparablePropertyValidator.java | 19 ++++++++++--------- .../validator/test/BaseValidatorTest.java | 4 ++-- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/plusone-validator/src/main/java/xyz/zhouxy/plusone/validator/BaseComparablePropertyValidator.java b/plusone-validator/src/main/java/xyz/zhouxy/plusone/validator/BaseComparablePropertyValidator.java index c2140d7..3e38bc3 100644 --- a/plusone-validator/src/main/java/xyz/zhouxy/plusone/validator/BaseComparablePropertyValidator.java +++ b/plusone-validator/src/main/java/xyz/zhouxy/plusone/validator/BaseComparablePropertyValidator.java @@ -25,33 +25,34 @@ public abstract class BaseComparablePropertyValidator, TPropertyValidator extends BaseComparablePropertyValidator> - extends BasePropertyValidator { + extends BasePropertyValidator { BaseComparablePropertyValidator(Function getter) { super(getter); } - public TPropertyValidator between(Range range) { - withRule(range::contains, convertExceptionCreator("The value is not in " + range.toString())); + public TPropertyValidator inRange(Range range) { + withRule(value -> value != null && range.contains(value), + convertExceptionCreator("The value is not in " + range.toString())); return thisObject(); } - public TPropertyValidator between(Range range, String errMsg) { - withRule(range::contains, convertExceptionCreator(errMsg)); + public TPropertyValidator inRange(Range range, String errMsg) { + withRule(value -> value != null && range.contains(value), convertExceptionCreator(errMsg)); return thisObject(); } - public TPropertyValidator between( + public TPropertyValidator inRange( Range range, Supplier exceptionCreator) { - withRule(range::contains, exceptionCreator); + withRule(value -> value != null && range.contains(value), exceptionCreator); return thisObject(); } - public TPropertyValidator between( + public TPropertyValidator inRange( Range range, Function exceptionCreator) { - withRule(range::contains, exceptionCreator); + withRule(value -> value != null && range.contains(value), exceptionCreator); return thisObject(); } diff --git a/plusone-validator/src/test/java/xyz/zhouxy/plusone/validator/test/BaseValidatorTest.java b/plusone-validator/src/test/java/xyz/zhouxy/plusone/validator/test/BaseValidatorTest.java index 018682d..859ad62 100644 --- a/plusone-validator/src/test/java/xyz/zhouxy/plusone/validator/test/BaseValidatorTest.java +++ b/plusone-validator/src/test/java/xyz/zhouxy/plusone/validator/test/BaseValidatorTest.java @@ -56,11 +56,11 @@ class BaseValidatorTest { ruleForComparable(RegisterCommand::getYearOfBirth) .notNull() - .between(Range.closed(thisYear - 60, thisYear - 18)); + .inRange(Range.closed(thisYear - 60, thisYear - 18)); ruleForInt(RegisterCommand::getYearOfBirth) .notNull() - .between(Range.closed(thisYear - 60, thisYear - 18)); + .inRange(Range.closed(thisYear - 60, thisYear - 18)); withRule(registerCommand -> Objects.equals(registerCommand.getPassword(), registerCommand.getPassword2()), "两次输入的密码不一致");