From 91f676f5cac17d5ce2c18cfaea553ef976222382 Mon Sep 17 00:00:00 2001 From: joe zhang Date: Tue, 28 Jul 2020 21:12:15 +0800 Subject: [PATCH 1/7] Add primitive type check method and unit tests --- .../core-java-lang-oop-types/pom.xml | 8 ++++ .../primitivetype/PrimitiveTypeUtil.java | 38 +++++++++++++++++ .../primitivetype/PrimitiveTypeUtilTest.java | 41 +++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java create mode 100644 core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java diff --git a/core-java-modules/core-java-lang-oop-types/pom.xml b/core-java-modules/core-java-lang-oop-types/pom.xml index 5555df4818..ee167bbae2 100644 --- a/core-java-modules/core-java-lang-oop-types/pom.xml +++ b/core-java-modules/core-java-lang-oop-types/pom.xml @@ -12,4 +12,12 @@ core-java-lang-oop-types core-java-lang-oop-types jar + + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + \ No newline at end of file diff --git a/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java b/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java new file mode 100644 index 0000000000..c749ed9dcd --- /dev/null +++ b/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java @@ -0,0 +1,38 @@ +package com.baeldung.primitivetype; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.lang3.ClassUtils; + +import com.google.common.primitives.Primitives; + +public class PrimitiveTypeUtil { + + private static final Map, Class> WRAPPER_TYPE_MAP; + static { + WRAPPER_TYPE_MAP = new HashMap, Class>(16); + WRAPPER_TYPE_MAP.put(Integer.class, int.class); + WRAPPER_TYPE_MAP.put(Byte.class, byte.class); + WRAPPER_TYPE_MAP.put(Character.class, char.class); + WRAPPER_TYPE_MAP.put(Boolean.class, boolean.class); + WRAPPER_TYPE_MAP.put(Double.class, double.class); + WRAPPER_TYPE_MAP.put(Float.class, float.class); + WRAPPER_TYPE_MAP.put(Long.class, long.class); + WRAPPER_TYPE_MAP.put(Short.class, short.class); + WRAPPER_TYPE_MAP.put(Void.class, void.class); + } + + public boolean isPrimitiveTypeByCommansLang(Object source) { + return ClassUtils.isPrimitiveOrWrapper(source.getClass()); + } + + public boolean isPrimitiveTypeByGuava(Object source) { + return Primitives.isWrapperType(source.getClass()); + } + + public boolean isPrimitiveType(Object source) { + return WRAPPER_TYPE_MAP.containsKey(source.getClass()); + } + +} diff --git a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java new file mode 100644 index 0000000000..7d3c2964d4 --- /dev/null +++ b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java @@ -0,0 +1,41 @@ +package com.baeldung.primitivetype; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Before; +import org.junit.Test; + +public class PrimitiveTypeUtilTest { + + private PrimitiveTypeUtil primitiveTypeUtil; + private boolean booleanVal = false; + private Long longWrapper = 1L; + private String nonPrimitiveVal = "Test"; + + @Before + public void setup() { + primitiveTypeUtil = new PrimitiveTypeUtil(); + } + + @Test + public void givenObjectWhenCheckWithGuavaShouldValidate() { + assertTrue(primitiveTypeUtil.isPrimitiveTypeByGuava(booleanVal)); + assertTrue(primitiveTypeUtil.isPrimitiveTypeByGuava(longWrapper)); + assertFalse(primitiveTypeUtil.isPrimitiveTypeByGuava(nonPrimitiveVal)); + } + + @Test + public void givenObjectWhenCheckWithCommansLangShouldValidate() { + assertTrue(primitiveTypeUtil.isPrimitiveTypeByCommansLang(booleanVal)); + assertTrue(primitiveTypeUtil.isPrimitiveTypeByCommansLang(longWrapper)); + assertFalse(primitiveTypeUtil.isPrimitiveTypeByCommansLang(nonPrimitiveVal)); + } + + @Test + public void givenPrimitiveOrWrapperWhenCheckWithCustomMethodShouldReturnTrue() { + assertTrue(primitiveTypeUtil.isPrimitiveType(booleanVal)); + assertTrue(primitiveTypeUtil.isPrimitiveType(longWrapper)); + assertFalse(primitiveTypeUtil.isPrimitiveType(nonPrimitiveVal)); + } +} From c1eb5dfb080eb3885621067bf333fd4b311de4be Mon Sep 17 00:00:00 2001 From: joe zhang Date: Thu, 30 Jul 2020 21:00:51 +0800 Subject: [PATCH 2/7] determine if an Object is of primitive type --- .../java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java index 7d3c2964d4..ff532520c2 100644 --- a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java +++ b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java @@ -11,7 +11,7 @@ public class PrimitiveTypeUtilTest { private PrimitiveTypeUtil primitiveTypeUtil; private boolean booleanVal = false; private Long longWrapper = 1L; - private String nonPrimitiveVal = "Test"; + private String nonPrimitiveVal = "non primitive string"; @Before public void setup() { From cf8390c5db48796ecc831b9fe295d77449ceaf20 Mon Sep 17 00:00:00 2001 From: joe zhang Date: Thu, 30 Jul 2020 21:09:33 +0800 Subject: [PATCH 3/7] determine if an Object is of primitive type --- .../java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java index ff532520c2..411bc422e5 100644 --- a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java +++ b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java @@ -26,7 +26,7 @@ public class PrimitiveTypeUtilTest { } @Test - public void givenObjectWhenCheckWithCommansLangShouldValidate() { + public void givenObjectWhenCheckWithCommonsLangShouldValidate() { assertTrue(primitiveTypeUtil.isPrimitiveTypeByCommansLang(booleanVal)); assertTrue(primitiveTypeUtil.isPrimitiveTypeByCommansLang(longWrapper)); assertFalse(primitiveTypeUtil.isPrimitiveTypeByCommansLang(nonPrimitiveVal)); From 12f10c1fe9924ab31eb8eac289ed591a1f9758c4 Mon Sep 17 00:00:00 2001 From: joe zhang Date: Thu, 30 Jul 2020 21:15:06 +0800 Subject: [PATCH 4/7] determine if an Object is of primitive type --- .../java/com/baeldung/primitivetype/PrimitiveTypeUtil.java | 2 +- .../com/baeldung/primitivetype/PrimitiveTypeUtilTest.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java b/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java index c749ed9dcd..1b2083b548 100644 --- a/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java +++ b/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java @@ -23,7 +23,7 @@ public class PrimitiveTypeUtil { WRAPPER_TYPE_MAP.put(Void.class, void.class); } - public boolean isPrimitiveTypeByCommansLang(Object source) { + public boolean isPrimitiveTypeByCommonsLang(Object source) { return ClassUtils.isPrimitiveOrWrapper(source.getClass()); } diff --git a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java index 411bc422e5..79b58967dd 100644 --- a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java +++ b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java @@ -27,9 +27,9 @@ public class PrimitiveTypeUtilTest { @Test public void givenObjectWhenCheckWithCommonsLangShouldValidate() { - assertTrue(primitiveTypeUtil.isPrimitiveTypeByCommansLang(booleanVal)); - assertTrue(primitiveTypeUtil.isPrimitiveTypeByCommansLang(longWrapper)); - assertFalse(primitiveTypeUtil.isPrimitiveTypeByCommansLang(nonPrimitiveVal)); + assertTrue(primitiveTypeUtil.isPrimitiveTypeByCommonsLang(booleanVal)); + assertTrue(primitiveTypeUtil.isPrimitiveTypeByCommonsLang(longWrapper)); + assertFalse(primitiveTypeUtil.isPrimitiveTypeByCommonsLang(nonPrimitiveVal)); } @Test From 7807827369b2d6cd002bf39493c83381a0924ffa Mon Sep 17 00:00:00 2001 From: joe zhang Date: Fri, 31 Jul 2020 00:33:26 +0800 Subject: [PATCH 5/7] refactor unit test name --- ...rimitiveTypeUtilTest.java => PrimitiveTypeUtilUnitTest.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/{PrimitiveTypeUtilTest.java => PrimitiveTypeUtilUnitTest.java} (97%) diff --git a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilUnitTest.java similarity index 97% rename from core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java rename to core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilUnitTest.java index 79b58967dd..5cd1b9f9d7 100644 --- a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilTest.java +++ b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilUnitTest.java @@ -6,7 +6,7 @@ import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; -public class PrimitiveTypeUtilTest { +public class PrimitiveTypeUtilUnitTest { private PrimitiveTypeUtil primitiveTypeUtil; private boolean booleanVal = false; From f66b13ab879493010cf1dbf63af5a5c428c224f3 Mon Sep 17 00:00:00 2001 From: joe zhang Date: Mon, 3 Aug 2020 22:52:22 +0800 Subject: [PATCH 6/7] use utility class directly --- .../primitivetype/PrimitiveTypeUtil.java | 16 +------- .../primitivetype/PrimitiveTypeUnitTest.java | 40 ++++++++++++++++++ .../PrimitiveTypeUtilUnitTest.java | 41 ------------------- 3 files changed, 42 insertions(+), 55 deletions(-) create mode 100644 core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUnitTest.java delete mode 100644 core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilUnitTest.java diff --git a/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java b/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java index 1b2083b548..9607a0008f 100644 --- a/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java +++ b/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java @@ -3,10 +3,6 @@ package com.baeldung.primitivetype; import java.util.HashMap; import java.util.Map; -import org.apache.commons.lang3.ClassUtils; - -import com.google.common.primitives.Primitives; - public class PrimitiveTypeUtil { private static final Map, Class> WRAPPER_TYPE_MAP; @@ -23,16 +19,8 @@ public class PrimitiveTypeUtil { WRAPPER_TYPE_MAP.put(Void.class, void.class); } - public boolean isPrimitiveTypeByCommonsLang(Object source) { - return ClassUtils.isPrimitiveOrWrapper(source.getClass()); - } - - public boolean isPrimitiveTypeByGuava(Object source) { - return Primitives.isWrapperType(source.getClass()); - } - - public boolean isPrimitiveType(Object source) { - return WRAPPER_TYPE_MAP.containsKey(source.getClass()); + public boolean isPrimitiveType(Class sourceClass) { + return WRAPPER_TYPE_MAP.containsKey(sourceClass); } } diff --git a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUnitTest.java b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUnitTest.java new file mode 100644 index 0000000000..5bbededbb3 --- /dev/null +++ b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUnitTest.java @@ -0,0 +1,40 @@ +package com.baeldung.primitivetype; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.apache.commons.lang3.ClassUtils; +import org.junit.Before; +import org.junit.Test; + +import com.google.common.primitives.Primitives; + +public class PrimitiveTypeUnitTest { + + private PrimitiveTypeUtil primitiveTypeUtil; + + @Before + public void setup() { + primitiveTypeUtil = new PrimitiveTypeUtil(); + } + + @Test + public void givenAClass_whenCheckWithPrimitiveTypeUtil_thenShouldValidate() { + assertTrue(primitiveTypeUtil.isPrimitiveType(Boolean.class)); + assertFalse(primitiveTypeUtil.isPrimitiveType(String.class)); + } + + @Test + public void givenAClass_whenCheckWithCommonsLang_thenShouldValidate() { + assertTrue(ClassUtils.isPrimitiveOrWrapper(Boolean.class)); + assertTrue(ClassUtils.isPrimitiveOrWrapper(boolean.class)); + assertFalse(ClassUtils.isPrimitiveOrWrapper(String.class)); + } + + @Test + public void givenAClass_whenCheckWithGuava_thenShouldValidate() { + assertTrue(Primitives.isWrapperType(Boolean.class)); + assertFalse(Primitives.isWrapperType(String.class)); + assertFalse(Primitives.isWrapperType(boolean.class)); + } +} diff --git a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilUnitTest.java b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilUnitTest.java deleted file mode 100644 index 5cd1b9f9d7..0000000000 --- a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUtilUnitTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.baeldung.primitivetype; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Before; -import org.junit.Test; - -public class PrimitiveTypeUtilUnitTest { - - private PrimitiveTypeUtil primitiveTypeUtil; - private boolean booleanVal = false; - private Long longWrapper = 1L; - private String nonPrimitiveVal = "non primitive string"; - - @Before - public void setup() { - primitiveTypeUtil = new PrimitiveTypeUtil(); - } - - @Test - public void givenObjectWhenCheckWithGuavaShouldValidate() { - assertTrue(primitiveTypeUtil.isPrimitiveTypeByGuava(booleanVal)); - assertTrue(primitiveTypeUtil.isPrimitiveTypeByGuava(longWrapper)); - assertFalse(primitiveTypeUtil.isPrimitiveTypeByGuava(nonPrimitiveVal)); - } - - @Test - public void givenObjectWhenCheckWithCommonsLangShouldValidate() { - assertTrue(primitiveTypeUtil.isPrimitiveTypeByCommonsLang(booleanVal)); - assertTrue(primitiveTypeUtil.isPrimitiveTypeByCommonsLang(longWrapper)); - assertFalse(primitiveTypeUtil.isPrimitiveTypeByCommonsLang(nonPrimitiveVal)); - } - - @Test - public void givenPrimitiveOrWrapperWhenCheckWithCustomMethodShouldReturnTrue() { - assertTrue(primitiveTypeUtil.isPrimitiveType(booleanVal)); - assertTrue(primitiveTypeUtil.isPrimitiveType(longWrapper)); - assertFalse(primitiveTypeUtil.isPrimitiveType(nonPrimitiveVal)); - } -} From 39511b371ab57c2dc7f98ce5251e7a7d949394a6 Mon Sep 17 00:00:00 2001 From: joe zhang Date: Thu, 6 Aug 2020 23:14:19 +0800 Subject: [PATCH 7/7] update unit test --- .../primitivetype/PrimitiveTypeUtil.java | 4 ++-- .../primitivetype/PrimitiveTypeUnitTest.java | 24 +++++++------------ 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java b/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java index 9607a0008f..ff70da1839 100644 --- a/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java +++ b/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java @@ -19,8 +19,8 @@ public class PrimitiveTypeUtil { WRAPPER_TYPE_MAP.put(Void.class, void.class); } - public boolean isPrimitiveType(Class sourceClass) { - return WRAPPER_TYPE_MAP.containsKey(sourceClass); + public static boolean isPrimitiveType(Object source) { + return WRAPPER_TYPE_MAP.containsKey(source.getClass()); } } diff --git a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUnitTest.java b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUnitTest.java index 5bbededbb3..b9152d3674 100644 --- a/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUnitTest.java +++ b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUnitTest.java @@ -4,37 +4,31 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.apache.commons.lang3.ClassUtils; -import org.junit.Before; +import org.apache.commons.lang3.StringUtils; import org.junit.Test; import com.google.common.primitives.Primitives; public class PrimitiveTypeUnitTest { - private PrimitiveTypeUtil primitiveTypeUtil; - - @Before - public void setup() { - primitiveTypeUtil = new PrimitiveTypeUtil(); - } - @Test public void givenAClass_whenCheckWithPrimitiveTypeUtil_thenShouldValidate() { - assertTrue(primitiveTypeUtil.isPrimitiveType(Boolean.class)); - assertFalse(primitiveTypeUtil.isPrimitiveType(String.class)); + assertTrue(PrimitiveTypeUtil.isPrimitiveType(false)); + assertTrue(PrimitiveTypeUtil.isPrimitiveType(1L)); + assertFalse(PrimitiveTypeUtil.isPrimitiveType(StringUtils.EMPTY)); } @Test public void givenAClass_whenCheckWithCommonsLang_thenShouldValidate() { - assertTrue(ClassUtils.isPrimitiveOrWrapper(Boolean.class)); + assertTrue(ClassUtils.isPrimitiveOrWrapper(Boolean.FALSE.getClass())); assertTrue(ClassUtils.isPrimitiveOrWrapper(boolean.class)); - assertFalse(ClassUtils.isPrimitiveOrWrapper(String.class)); + assertFalse(ClassUtils.isPrimitiveOrWrapper(StringUtils.EMPTY.getClass())); } @Test public void givenAClass_whenCheckWithGuava_thenShouldValidate() { - assertTrue(Primitives.isWrapperType(Boolean.class)); - assertFalse(Primitives.isWrapperType(String.class)); - assertFalse(Primitives.isWrapperType(boolean.class)); + assertTrue(Primitives.isWrapperType(Boolean.FALSE.getClass())); + assertFalse(Primitives.isWrapperType(StringUtils.EMPTY.getClass())); + assertFalse(Primitives.isWrapperType(Boolean.TYPE.getClass())); } }