diff --git a/core-java-modules/core-java-lang-2/pom.xml b/core-java-modules/core-java-lang-2/pom.xml
index 22df5f7951..3230498f41 100644
--- a/core-java-modules/core-java-lang-2/pom.xml
+++ b/core-java-modules/core-java-lang-2/pom.xml
@@ -15,10 +15,10 @@
- org.openjdk.jmh
- jmh-core
- ${jmh-core.version}
-
+ commons-beanutils
+ commons-beanutils
+ 1.9.4
+
org.openjdk.jmh
jmh-generator-annprocess
@@ -29,6 +29,11 @@
jmh-generator-bytecode
${jmh-generator.version}
+
+ org.openjdk.jmh
+ jmh-core
+ ${jmh-core.version}
+
diff --git a/core-java-modules/core-java-lang-2/src/main/java/com/baeldung/pojo/EmployeeBean.java b/core-java-modules/core-java-lang-2/src/main/java/com/baeldung/pojo/EmployeeBean.java
new file mode 100644
index 0000000000..faf1c1f261
--- /dev/null
+++ b/core-java-modules/core-java-lang-2/src/main/java/com/baeldung/pojo/EmployeeBean.java
@@ -0,0 +1,53 @@
+package com.baeldung.pojo;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+public class EmployeeBean implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3760445487636086034L;
+
+ private String firstName;
+
+ private String lastName;
+
+ private LocalDate startDate;
+
+ public EmployeeBean() {
+
+ }
+
+ public EmployeeBean(String firstName, String lastName, LocalDate startDate) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.startDate = startDate;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public LocalDate getStartDate() {
+ return startDate;
+ }
+
+ public void setStartDate(LocalDate startDate) {
+ this.startDate = startDate;
+ }
+
+}
diff --git a/core-java-modules/core-java-lang-2/src/main/java/com/baeldung/pojo/EmployeePojo.java b/core-java-modules/core-java-lang-2/src/main/java/com/baeldung/pojo/EmployeePojo.java
new file mode 100644
index 0000000000..a48fa94381
--- /dev/null
+++ b/core-java-modules/core-java-lang-2/src/main/java/com/baeldung/pojo/EmployeePojo.java
@@ -0,0 +1,27 @@
+package com.baeldung.pojo;
+
+import java.time.LocalDate;
+
+public class EmployeePojo {
+
+ public String firstName;
+
+ public String lastName;
+
+ private LocalDate startDate;
+
+ public EmployeePojo(String firstName, String lastName, LocalDate startDate) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.startDate = startDate;
+ }
+
+ public String name() {
+ return this.firstName + " " + this.lastName;
+ }
+
+ public LocalDate getStart() {
+ return this.startDate;
+ }
+
+}
diff --git a/core-java-modules/core-java-lang-2/src/main/java/com/baeldung/pojo/ReflectionExample.java b/core-java-modules/core-java-lang-2/src/main/java/com/baeldung/pojo/ReflectionExample.java
new file mode 100644
index 0000000000..ebb4c10d92
--- /dev/null
+++ b/core-java-modules/core-java-lang-2/src/main/java/com/baeldung/pojo/ReflectionExample.java
@@ -0,0 +1,24 @@
+package com.baeldung.pojo;
+
+import java.beans.PropertyDescriptor;
+
+import org.apache.commons.beanutils.PropertyUtils;
+
+
+public class ReflectionExample {
+
+ public static void main(String[] args) {
+
+ System.out.println("Fields for EmployeePojo are:");
+ for (PropertyDescriptor pd : PropertyUtils.getPropertyDescriptors(EmployeePojo.class)) {
+ System.out.println(pd.getDisplayName());
+ }
+
+ System.out.println("Fields for EmployeeBean are:");
+ for (PropertyDescriptor pd : PropertyUtils.getPropertyDescriptors(EmployeeBean.class)) {
+ System.out.println(pd.getDisplayName());
+ }
+
+ }
+
+}