Getting method: 1. Create a sample object; 2. Get the value of the field through field.get(person), where person is the sample object and field is the Field object, representing a field; 3. Through setAccessible(true) sets the field to an accessible state, and even private fields can get their values; 4. Traverse the field array, get the name and corresponding value of each field, and print it out.
Operating system for this tutorial: Windows 10 system, Dell G3 computer.
In Java, you can use the reflection mechanism to obtain the value of an object property. In the previous example, we have demonstrated how to use reflection to obtain the value of the object property. The following is the key code part:
import java.lang.reflect.Field; public class ReflectExample { public static void main(String[] args) throws IllegalAccessException { // 创建一个示例对象 Person person = new Person("John", 25, "123 Main St"); // 获取Class对象 Class<?> clazz = person.getClass(); // 获取类的所有字段(包括私有字段) Field[] fields = clazz.getDeclaredFields(); // 遍历字段数组 for (Field field : fields) { // 设置字段为可访问,即使是私有字段也可以访问 field.setAccessible(true); // 获取字段的名称 String fieldName = field.getName(); // 获取字段的值 Object fieldValue = field.get(person); // 打印字段名和值 System.out.println(fieldName + ": " + fieldValue); } } } // 示例类 class Person { private String name; private int age; private String address; public Person(String name, int age, String address) { this.name = name; this.age = age; this.address = address; } }
In the above example, the value of the field is obtained through field.get(person) , where person is the sample object, and field is the Field object, representing a field. By setting a field to an accessible state via setAccessible(true), even a private field can obtain its value.
Traverse the field array to get the name and corresponding value of each field and print it. It should be noted that obtaining the value of a private field through reflection requires attention to security and encapsulation.
The above is the detailed content of How to get the value of an attribute in java reflection. For more information, please follow other related articles on the PHP Chinese website!