我已经使用以下属性定义了一个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。
使用PropertyUtils
而不是BeanUtils
。
(String) PropertyUtilsBean.getInstance().getNestedProperty(employee, "address.street");
对我来说,你的榜样也很好。所以在你的例子中,唯一可能的错误是:employee
不是Employee
的实例。
另外,为什么不发布异常消息?它们包含非常有用的信息,例如:
java.lang.NoSuchMethodException: Unknown property 'address' on class 'class com.mycompany.dto.Address'