From 1c8ec490df306f9a27f9a6fc2db0cf1c3a0f53a5 Mon Sep 17 00:00:00 2001 From: zhou-hao Date: Tue, 17 Mar 2020 17:09:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=A0=E6=B3=95=E5=AF=B9?= =?UTF-8?q?=E6=AF=94boolean?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/hswebframework/web/bean/CompareUtils.java | 9 +++++++-- .../test/java/org/hswebframework/web/bean/DiffTest.java | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/hsweb-core/src/main/java/org/hswebframework/web/bean/CompareUtils.java b/hsweb-core/src/main/java/org/hswebframework/web/bean/CompareUtils.java index 5f86686cd..5a2f51a0d 100644 --- a/hsweb-core/src/main/java/org/hswebframework/web/bean/CompareUtils.java +++ b/hsweb-core/src/main/java/org/hswebframework/web/bean/CompareUtils.java @@ -152,6 +152,11 @@ public abstract class CompareUtils { return compare(Arrays.asList(number), target); } + public static boolean compare(Boolean bool, Object target) { + return bool.equals(target) || String.valueOf(bool).equals(target); + } + + public static boolean compare(Number number, Object target) { if (number == target) { return true; @@ -178,9 +183,9 @@ public abstract class CompareUtils { DateFormatter dateFormatter = DateFormatter.getFormatter(stringValue); return (dateFormatter.toString(new Date(number.longValue())).equals(stringValue)); } - try{ + try { return new BigDecimal(stringValue).doubleValue() == number.doubleValue(); - }catch (NumberFormatException e){ + } catch (NumberFormatException e) { return false; } } diff --git a/hsweb-core/src/test/java/org/hswebframework/web/bean/DiffTest.java b/hsweb-core/src/test/java/org/hswebframework/web/bean/DiffTest.java index 17bd9b473..a87694160 100644 --- a/hsweb-core/src/test/java/org/hswebframework/web/bean/DiffTest.java +++ b/hsweb-core/src/test/java/org/hswebframework/web/bean/DiffTest.java @@ -15,11 +15,15 @@ public class DiffTest { Map before = new HashMap<>(); before.put("name", "name"); before.put("age",21); + before.put("bool", true); + before.put("bool", false); before.put("birthday", DateFormatter.fromString("19910101")); Map after = new HashMap<>(); after.put("name", "name"); after.put("age", "21"); + after.put("bool", "true"); + after.put("bool", "false"); after.put("birthday", "1991-01-01");