The example below using reflection to obtain the fields of a class object. We’ll get the field names and their corresponding type. There are three ways shown below which can be used to get an object fields:
Class.getDeclaredFields()
Class.getFields()
Class.getField(String)
package org.kodejava.lang.reflect;
import java.util.Date;
import java.lang.reflect.Field;
public class GetFields {
public Long id;
protected String name;
private Date birthDate;
Double weight;
public static void main(String[] args) {
GetFields object = new GetFields();
Class<? extends GetFields> clazz = object.getClass();
// Get all object fields including public, protected, package and private
// access fields.
Field[] fields = clazz.getDeclaredFields();
System.out.println("Number of fields = " + fields.length);
for (Field field : fields) {
System.out.println("Field name = " + field.getName());
System.out.println("Field type = " + field.getType().getName());
}
System.out.println("\n----------------------------------------\n");
// Get all object accessible public fields.
fields = clazz.getFields();
System.out.println("Number of fields = " + fields.length);
for (Field field : fields) {
System.out.println("Field name = " + field.getName());
System.out.println("Field type = " + field.getType().getName());
}
System.out.println("\n----------------------------------------\n");
try {
// Get field name id with public access modifier
Field field = clazz.getField("id");
System.out.println("Field name = " + field.getName());
System.out.println("Field type = " + field.getType().getName());
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
}
The output of the code snippet above are:
Number of fields = 4
Field name = id
Field type = java.lang.Long
Field name = name
Field type = java.lang.String
Field name = birthDate
Field type = java.util.Date
Field name = weight
Field type = java.lang.Double
----------------------------------------
Number of fields = 1
Field name = id
Field type = java.lang.Long
----------------------------------------
Field name = id
Field type = java.lang.Long
Latest posts by Wayan (see all)
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024