在 Java 中,可以使用反射来根据属性名获取属性值。下面是一个示例代码:
import java.lang.reflect.Field; public class Main { public static void main(String[] args) { // 创建一个对象 Person person = new Person("张三", 20); // 获取属性值 String name = getPropertyValue(person, "name"); int age = getPropertyValue(person, "age"); // 打印属性值 System.out.println("name: " + name); System.out.println("age: " + age); } private staticT getPropertyValue(Object obj, String propertyName) { try { // 获取属性 Field field = obj.getClass().getDeclaredField(propertyName); // 设置可访问性,避免 private 属性访问权限限制 field.setAccessible(true); // 获取属性值 T value = https://www.yisu.com/ask/(T) field.get(obj);"hljs">int age) { this.name = name; this.age = age; } }
输出结果:
name: 张三 age: 20
在上述示例中,使用了泛型方法 getPropertyValue()
,该方法通过反射获取到指定对象的属性,并返回属性值。在获取属性之前,需要通过 setAccessible(true)
方法设置属性的可访问性,以便可以访问到 private 属性。