diff --git a/lombok-modules/lombok-2/src/main/java/com/baeldung/lombok/requiredargsconstructor/ClassWithFinalMembers.java b/lombok-modules/lombok-2/src/main/java/com/baeldung/lombok/requiredargsconstructor/ClassWithFinalMembers.java
new file mode 100644
index 0000000000..9537c0a664
--- /dev/null
+++ b/lombok-modules/lombok-2/src/main/java/com/baeldung/lombok/requiredargsconstructor/ClassWithFinalMembers.java
@@ -0,0 +1,13 @@
+package com.baeldung.lombok.requiredargsconstructor;
+
+import lombok.RequiredArgsConstructor;
+
+@RequiredArgsConstructor
+public class ClassWithFinalMembers {
+
+ private final String stringObject;
+
+ public String getStringObject() {
+ return stringObject;
+ }
+}
diff --git a/lombok-modules/lombok-2/src/main/java/com/baeldung/lombok/requiredargsconstructor/ClassWithFinalNonNullMembers.java b/lombok-modules/lombok-2/src/main/java/com/baeldung/lombok/requiredargsconstructor/ClassWithFinalNonNullMembers.java
new file mode 100644
index 0000000000..7585afa6c1
--- /dev/null
+++ b/lombok-modules/lombok-2/src/main/java/com/baeldung/lombok/requiredargsconstructor/ClassWithFinalNonNullMembers.java
@@ -0,0 +1,26 @@
+package com.baeldung.lombok.requiredargsconstructor;
+
+import lombok.NonNull;
+import lombok.RequiredArgsConstructor;
+
+@RequiredArgsConstructor
+public class ClassWithFinalNonNullMembers {
+
+ private final String finalStringObject;
+ @NonNull
+ private String nonNullStringObject;
+
+ private String nonFinalStringObject;
+
+ public String getFinalStringObject() {
+ return finalStringObject;
+ }
+
+ public String getNonNullStringObject() {
+ return nonNullStringObject;
+ }
+
+ public String getNonFinalStringObject() {
+ return nonFinalStringObject;
+ }
+}
diff --git a/lombok-modules/lombok-2/src/main/java/com/baeldung/lombok/requiredargsconstructor/ClassWithNonFinalMembers.java b/lombok-modules/lombok-2/src/main/java/com/baeldung/lombok/requiredargsconstructor/ClassWithNonFinalMembers.java
new file mode 100644
index 0000000000..7a125a343a
--- /dev/null
+++ b/lombok-modules/lombok-2/src/main/java/com/baeldung/lombok/requiredargsconstructor/ClassWithNonFinalMembers.java
@@ -0,0 +1,13 @@
+package com.baeldung.lombok.requiredargsconstructor;
+
+import lombok.RequiredArgsConstructor;
+
+@RequiredArgsConstructor
+public class ClassWithNonFinalMembers {
+
+ private String stringObject;
+
+ public String getStringObject() {
+ return stringObject;
+ }
+}
diff --git a/lombok-modules/lombok-2/src/test/java/com/baeldung/lombok/requiredargsconstructor/RequiredArgsConstructorUnitTest.java b/lombok-modules/lombok-2/src/test/java/com/baeldung/lombok/requiredargsconstructor/RequiredArgsConstructorUnitTest.java
new file mode 100644
index 0000000000..a05fe7eb31
--- /dev/null
+++ b/lombok-modules/lombok-2/src/test/java/com/baeldung/lombok/requiredargsconstructor/RequiredArgsConstructorUnitTest.java
@@ -0,0 +1,28 @@
+package com.baeldung.lombok.requiredargsconstructor;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+public class RequiredArgsConstructorUnitTest {
+ @Test
+ void whenClassHasFinalMembers_thenGeneratedConstructorHasParameters() {
+ ClassWithFinalMembers classWithFinalMembers = new ClassWithFinalMembers("dummyString");
+ Assertions.assertNotNull(classWithFinalMembers);
+ Assertions.assertEquals("dummyString", classWithFinalMembers.getStringObject());
+ }
+
+ @Test
+ void whenClassHasNonFinalMembers_thenGeneratedConstructorHasNoParameters() {
+ ClassWithNonFinalMembers classWithNonFinalMembers = new ClassWithNonFinalMembers();
+ Assertions.assertNotNull(classWithNonFinalMembers);
+ }
+
+ @Test
+ void whenClassHasFinalAndNonNullMembers_thenGeneratedConstructorHasParameters() {
+ ClassWithFinalNonNullMembers classWithFinalNonNullMembers = new ClassWithFinalNonNullMembers("finalString", "nonNullString");
+ Assertions.assertNotNull(classWithFinalNonNullMembers);
+ Assertions.assertEquals("finalString", classWithFinalNonNullMembers.getFinalStringObject());
+ Assertions.assertEquals("nonNullString", classWithFinalNonNullMembers.getNonNullStringObject());
+ Assertions.assertNull(classWithFinalNonNullMembers.getNonFinalStringObject());
+ }
+}
diff --git a/pom.xml b/pom.xml
index 6d566549ef..dbf8c942c3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1297,7 +1297,7 @@