diff --git a/core-java-modules/core-java-reflection-private-constructor/README.md b/core-java-modules/core-java-reflection-private-constructor/README.md
new file mode 100644
index 0000000000..a3c9d00b0a
--- /dev/null
+++ b/core-java-modules/core-java-reflection-private-constructor/README.md
@@ -0,0 +1,10 @@
+### Relevant Articles:
+
+- [Reading the Value of ‘private’ Fields from a Different Class in Java](https://www.baeldung.com/java-reflection-read-private-field-value)
+- [Set Field Value With Reflection](https://www.baeldung.com/java-set-private-field-value)
+- [Checking If a Method is Static Using Reflection in Java](https://www.baeldung.com/java-check-method-is-static)
+- [Checking if a Java Class is ‘abstract’ Using Reflection](https://www.baeldung.com/java-reflection-is-class-abstract)
+- [Invoking a Private Method in Java](https://www.baeldung.com/java-call-private-method)
+- [Finding All Classes in a Java Package](https://www.baeldung.com/java-find-all-classes-in-package)
+- [Invoke a Static Method Using Java Reflection API](https://www.baeldung.com/java-invoke-static-method-reflection)
+- [What Is the JDK com.sun.proxy.$Proxy Class?](https://www.baeldung.com/jdk-com-sun-proxy)
diff --git a/core-java-modules/core-java-reflection-private-constructor/pom.xml b/core-java-modules/core-java-reflection-private-constructor/pom.xml
new file mode 100644
index 0000000000..b53aa2c61b
--- /dev/null
+++ b/core-java-modules/core-java-reflection-private-constructor/pom.xml
@@ -0,0 +1,60 @@
+
+
+ 4.0.0
+ core-java-reflection-private-constructor
+ 0.1.0-SNAPSHOT
+ core-java-reflection-private-constructor
+ jar
+
+
+ com.baeldung.core-java-modules
+ core-java-modules
+ 0.0.1-SNAPSHOT
+
+
+
+
+ org.springframework
+ spring-test
+ ${spring.version}
+ test
+
+
+ org.reflections
+ reflections
+ ${reflections.version}
+
+
+
+
+ core-java-reflection-private-constructor
+
+
+ src/main/resources
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+ ${source.version}
+ ${target.version}
+ -parameters
+
+
+
+
+
+
+ 0.9.12
+ 1.8
+ 1.8
+ 5.3.4
+
+
+
\ No newline at end of file
diff --git a/core-java-modules/core-java-reflection-private-constructor/src/main/java/com/baeldung/reflection/PrivateConstructorClass.java b/core-java-modules/core-java-reflection-private-constructor/src/main/java/com/baeldung/reflection/PrivateConstructorClass.java
new file mode 100644
index 0000000000..24e7d435c7
--- /dev/null
+++ b/core-java-modules/core-java-reflection-private-constructor/src/main/java/com/baeldung/reflection/PrivateConstructorClass.java
@@ -0,0 +1,8 @@
+package com.baeldung.reflection;
+
+public class PrivateConstructorClass {
+
+ private PrivateConstructorClass() {
+ System.out.println("Used the private constructor!");
+ }
+}
\ No newline at end of file
diff --git a/core-java-modules/core-java-reflection-private-constructor/src/test/java/com/baeldung/reflection/PrivateConstructorUnitTest.java b/core-java-modules/core-java-reflection-private-constructor/src/test/java/com/baeldung/reflection/PrivateConstructorUnitTest.java
new file mode 100644
index 0000000000..cd1f48d720
--- /dev/null
+++ b/core-java-modules/core-java-reflection-private-constructor/src/test/java/com/baeldung/reflection/PrivateConstructorUnitTest.java
@@ -0,0 +1,17 @@
+package com.baeldung.reflection;
+
+import java.lang.reflect.Constructor;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+public class PrivateConstructorUnitTest {
+
+ @Test
+ public void whenConstructorIsPrivate_thenInstanceSuccess() throws Exception {
+ Constructor pcc = PrivateConstructorClass.class.getDeclaredConstructor();
+ pcc.setAccessible(true);
+ PrivateConstructorClass privateConstructorInstance = pcc.newInstance();
+ Assertions.assertTrue(privateConstructorInstance instanceof PrivateConstructorClass);
+ }
+}
\ No newline at end of file