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..ff70da1839
--- /dev/null
+++ b/core-java-modules/core-java-lang-oop-types/src/main/java/com/baeldung/primitivetype/PrimitiveTypeUtil.java
@@ -0,0 +1,26 @@
+package com.baeldung.primitivetype;
+
+import java.util.HashMap;
+import java.util.Map;
+
+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 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
new file mode 100644
index 0000000000..b9152d3674
--- /dev/null
+++ b/core-java-modules/core-java-lang-oop-types/src/test/java/com/baeldung/primitivetype/PrimitiveTypeUnitTest.java
@@ -0,0 +1,34 @@
+package com.baeldung.primitivetype;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.commons.lang3.ClassUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.junit.Test;
+
+import com.google.common.primitives.Primitives;
+
+public class PrimitiveTypeUnitTest {
+
+ @Test
+ public void givenAClass_whenCheckWithPrimitiveTypeUtil_thenShouldValidate() {
+ assertTrue(PrimitiveTypeUtil.isPrimitiveType(false));
+ assertTrue(PrimitiveTypeUtil.isPrimitiveType(1L));
+ assertFalse(PrimitiveTypeUtil.isPrimitiveType(StringUtils.EMPTY));
+ }
+
+ @Test
+ public void givenAClass_whenCheckWithCommonsLang_thenShouldValidate() {
+ assertTrue(ClassUtils.isPrimitiveOrWrapper(Boolean.FALSE.getClass()));
+ assertTrue(ClassUtils.isPrimitiveOrWrapper(boolean.class));
+ assertFalse(ClassUtils.isPrimitiveOrWrapper(StringUtils.EMPTY.getClass()));
+ }
+
+ @Test
+ public void givenAClass_whenCheckWithGuava_thenShouldValidate() {
+ assertTrue(Primitives.isWrapperType(Boolean.FALSE.getClass()));
+ assertFalse(Primitives.isWrapperType(StringUtils.EMPTY.getClass()));
+ assertFalse(Primitives.isWrapperType(Boolean.TYPE.getClass()));
+ }
+}