From 8cca99c548c76240deb42bdb3370c488564ccbb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A6=82=E6=A2=A6=E6=8A=80=E6=9C=AF?= <596392912@qq.com> Date: Mon, 23 Aug 2021 09:50:33 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=20mica-core=20=E4=BF=AE=E5=A4=8D=20Obj?= =?UTF-8?q?ectUtil#toBoolean=20=E6=96=B9=E6=B3=95=EF=BC=8C=E6=84=9F?= =?UTF-8?q?=E8=B0=A2=20`@caiqyxyx`=20=E5=90=8C=E5=AD=A6=E5=8F=8D=E9=A6=88?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dreamlu/mica/core/utils/ObjectUtil.java | 31 ++++++++++++------- .../dreamlu/mica/core/utils/StringPool.java | 2 ++ .../mica/test/utils/ObjectUtilTest.java | 13 ++++++++ 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/mica-core/src/main/java/net/dreamlu/mica/core/utils/ObjectUtil.java b/mica-core/src/main/java/net/dreamlu/mica/core/utils/ObjectUtil.java index 5d3ce11e..7f3757e0 100644 --- a/mica-core/src/main/java/net/dreamlu/mica/core/utils/ObjectUtil.java +++ b/mica-core/src/main/java/net/dreamlu/mica/core/utils/ObjectUtil.java @@ -237,7 +237,7 @@ public class ObjectUtil extends org.springframework.util.ObjectUtils { /** * 对象转为 Float * - * @param object Object + * @param object Object * @param defaultValue float * @return 结果 */ @@ -269,7 +269,7 @@ public class ObjectUtil extends org.springframework.util.ObjectUtils { /** * 对象转为 Double * - * @param object Object + * @param object Object * @param defaultValue double * @return 结果 */ @@ -301,7 +301,7 @@ public class ObjectUtil extends org.springframework.util.ObjectUtils { /** * 对象转为 Byte * - * @param object Object + * @param object Object * @param defaultValue byte * @return 结果 */ @@ -333,7 +333,7 @@ public class ObjectUtil extends org.springframework.util.ObjectUtils { /** * 对象转为 Short * - * @param object Object + * @param object Object * @param defaultValue short * @return 结果 */ @@ -364,9 +364,9 @@ public class ObjectUtil extends org.springframework.util.ObjectUtils { } /** - * 对象转为 Boolean + * 对象转为 Boolean,支持 1、0,y、yes、n、no,on、off,true、false * - * @param object Object + * @param object Object * @param defaultValue 默认值 * @return 结果 */ @@ -374,13 +374,20 @@ public class ObjectUtil extends org.springframework.util.ObjectUtils { public static Boolean toBoolean(@Nullable Object object, @Nullable Boolean defaultValue) { if (object instanceof Boolean) { return (Boolean) object; - } - if (object instanceof CharSequence) { + } else if (object instanceof CharSequence) { String value = ((CharSequence) object).toString(); - try { - return Boolean.parseBoolean(value.trim()); - } catch (NumberFormatException nfe) { - return defaultValue; + if (StringPool.TRUE.equalsIgnoreCase(value) || + StringPool.Y.equalsIgnoreCase(value) || + StringPool.YES.equalsIgnoreCase(value) || + StringPool.ON.equalsIgnoreCase(value) || + StringPool.ONE.equalsIgnoreCase(value)) { + return true; + } else if (StringPool.FALSE.equalsIgnoreCase(value) || + StringPool.N.equalsIgnoreCase(value) || + StringPool.NO.equalsIgnoreCase(value) || + StringPool.OFF.equalsIgnoreCase(value) || + StringPool.ZERO.equalsIgnoreCase(value)) { + return false; } } return defaultValue; diff --git a/mica-core/src/main/java/net/dreamlu/mica/core/utils/StringPool.java b/mica-core/src/main/java/net/dreamlu/mica/core/utils/StringPool.java index aee42075..2d2bcd1a 100644 --- a/mica-core/src/main/java/net/dreamlu/mica/core/utils/StringPool.java +++ b/mica-core/src/main/java/net/dreamlu/mica/core/utils/StringPool.java @@ -79,5 +79,7 @@ public interface StringPool { String GET = "get"; String IS = "is"; String UNKNOWN = "unknown"; + String OK = "ok"; + // @formatter:on } diff --git a/mica-core/src/test/java/net/dreamlu/mica/test/utils/ObjectUtilTest.java b/mica-core/src/test/java/net/dreamlu/mica/test/utils/ObjectUtilTest.java index 6911d752..80317dff 100644 --- a/mica-core/src/test/java/net/dreamlu/mica/test/utils/ObjectUtilTest.java +++ b/mica-core/src/test/java/net/dreamlu/mica/test/utils/ObjectUtilTest.java @@ -74,4 +74,17 @@ public class ObjectUtilTest { Assert.assertTrue(ObjectUtil.isEmpty(Collections.emptyList())); } + /** + * Method: toBoolean(@Nullable Object obj) + */ + @Test + public void testToBoolean() throws Exception { + Assert.assertNull(ObjectUtil.toBoolean(null)); + Assert.assertNull(ObjectUtil.toBoolean("a")); + Assert.assertTrue(ObjectUtil.toBoolean("1")); + Assert.assertTrue(ObjectUtil.toBoolean(null, true)); + Assert.assertTrue(ObjectUtil.toBoolean("a", true)); + Assert.assertTrue(ObjectUtil.toBoolean("1", true)); + } + } -- GitLab