LazyList.decorate - InstantiateFactory:构造函数必须存在并且是公共异常

时间:2011-02-18 15:18:17

标签: java spring spring-mvc

我有那段代码:

public class User   
...
private List<Country> countries = LazyList.decorate(new ArrayList(), FactoryUtils.instantiateFactory(Country.class));
    private String country;

...
public void setCountries(List<Country> countries) {
        this.countries = countries;
    }

    public List<Country> getCountries() {
        return countries;
    }
...

在国家级:

public class Country {

    private int countryId;
    private String countryName;

    public Country(int countryId, String countryName)
    {
        this.countryId = countryId;
        this.countryName = countryName;
    }

    public int getCountryId() {
        return countryId;
    }

    public void setCountryId(int countryId) {
        this.countryId = countryId;
    }

    public String getCountryName() {
        return countryName;
    }

    public void setCountryName(String countryName) {
        this.countryName = countryName;
    }

}

当我创建一个新的User对象时,我给出了这个例外:

  

java.lang.IllegalArgumentException:InstantiateFactory:构造函数必须存在且是公共的

任何人都知道为什么?

1 个答案:

答案 0 :(得分:3)

看起来像你唯一的构造函数是:

public Country(int countryId, String countryName)

虽然工厂希望找到 no-arg 构造函数(常见要求):

public Country()

将它添加到Country课程中,你会没事的。