我已经定义了一个具有以下属性的Employee对象
public class Employee {
private String id;
private String name;
private Address address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
地址对象:
public class Address {
private String street;
private String city;
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}
并为属性生成了getter和setter。当我在属性上执行以下操作时:
String value = BeanUtils.getNestedProperty(employee, "address.street");
我为address.street获得了“No Such Method Exception”。
java.lang.NoSuchMethodException:类com.test.xm.Employee'
上的未知属性'address.street'字段ID和名称正常。
双重检查了吸气剂和制定者,看起来很好。我可能在这里做错了什么?
编辑:更新了getter和setter。
答案 0 :(得分:4)
使用PropertyUtils
代替BeanUtils
。
(String) PropertyUtilsBean.getInstance().getNestedProperty(employee, "address.street");
对我来说,你的榜样也很好。因此,在您的示例中,唯一可能的错误是:employee
不是Employee
的实例。
另外,为什么不发布“异常”消息?它们包含非常有用的信息,例如:
java.lang.NoSuchMethodException: Unknown property 'address' on class 'class com.mycompany.dto.Address'