【问题标题】:apache commons beanutils, how to set property value?apache commons beanutils,如何设置属性值?
【发布时间】:2011-12-01 19:25:04
【问题描述】:

在java,commons beanutils中,尝试将属性'address'和'creditCardList'设置为对象,但它给了我错误:

java.lang.NoSuchMethodException: Property 'address' has no setter method in class 'class com.dao.Student'

但我有这个方法。代码在这里:

public class Main { 
    public static void main(String[] args) {
        Object student = new Student("John");       
        Object address = new Address("NJ");

        try {
            PropertyUtils.setProperty(student, "address", address);         
            //---------- 
            List list = new ArrayList();
            Object creditCard = new CreditCard();
            list.add(creditCard);

            PropertyUtils.setProperty(student, "creditCardList", list);         

        } catch (Exception e) {         
            e.printStackTrace();
        } 
    }
}

class Student {
    private String name;        
    private Address address;    
    private List<CreditCard> creditCardList;    
    public Student(String name) {
        super();
        this.name = name;
    }
    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 List<CreditCard> getCreditCardList() {
        return creditCardList;
    }
    public void setCreditCardList(List<CreditCard> creditCardList) {
        this.creditCardList = creditCardList;
    }   
}

class Address {
    private String name;
    public Address(String name) {
        super();
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }   
}

class CreditCard{
    private String cardName;

    public String getCardName() {
        return cardName;
    }

    public void setCardName(String cardName) {
        this.cardName = cardName;
    }   
}

【问题讨论】:

    标签: java apache-commons-beanutils


    【解决方案1】:

    您的学生类应该是一个公共类,尝试将其公开并重新运行您的代码。

    【讨论】:

    • 我认为它不需要默认构造函数。如果您只是将类移动到它自己的文件并将其公开,它就可以工作。
    • beanutils 适用于 Java bean,它有一个特定要求,即类应该是公共的。否则它不会工作。
    【解决方案2】:

    我将 Student 移动到自己的文件并公开,效果很好 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-14
      • 2017-06-14
      • 1970-01-01
      • 2011-08-31
      • 2018-01-02
      • 1970-01-01
      相关资源
      最近更新 更多