【问题标题】:No Such Method Exception on getting Nested property获取嵌套属性时没有此类方法异常
【发布时间】:2012-12-04 21:22:28
【问题描述】:

我已经定义了一个具有以下属性的 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 的“无此类方法异常”。

java.lang.NoSuchMethodException:类“com.test.xm.Employee”上的未知属性“address.street”

字段 id 和 name 工作正常。

仔细检查了 getter 和 setter,看起来没问题。我在这里可能做错了什么?

编辑:更新了 getter 和 setter。

【问题讨论】:

  • 您的 getter 和 seter 是否遵循 java bean 约定?向我们展示你的 getter 和 setter
  • 请确保设置器是正确的。你也可以发布seter方法吗?
  • 换句话说,请提供SSCCE
  • @GanGnaMStYleOverFlowErroR 更新了 getter 和 setter
  • 请粘贴准确的错误信息

标签: java exception javabeans nosuchmethod


【解决方案1】:

使用PropertyUtils 代替BeanUtils

   (String) PropertyUtilsBean.getInstance().getNestedProperty(employee, "address.street");  

对我来说,你的例子也很好。因此,在您的示例中,唯一可能的错误是:employee 不是Employee 的实例。

另外,您为什么不发布异常消息?它们包含非常有用的信息,例如:

 java.lang.NoSuchMethodException: Unknown property 'address' on class 'class com.mycompany.dto.Address'

【讨论】:

    猜你喜欢
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 2019-03-08
    相关资源
    最近更新 更多