以点分隔的字符串访问(私有)成员

rom*_*yak 0 java reflection

我可以通过以下语法访问实例字段:student.address.city

public class Student {
   private Address address;
   //getters&setters
}

public class Address {
    private String town;
    private String street;
    private String city;
   //getters&setters
}
Run Code Online (Sandbox Code Playgroud)

我认为可以通过反射以某种方式完成。基本上我需要这样的东西:

String city = getPropertyValue("student.address.city", student);
Run Code Online (Sandbox Code Playgroud)

像在js中一样,我们可以访问对象属性。

rom*_*yak 5

还有一个专用于org.apache.commons.beanutils.PropertyUtils.getNestedProperty()的方法。