Digester fails

通过digester创建对象后,无法设置元素的值dataSize:

digester.addBeanPropertySetter      ("config/settings/size", "dataSize");

class Config{
    private int dataSize;

    public int getDataSize()
    {
        return dataSize;
    }

    public void setDataSize(String dataSize)
    {
        this.dataSize = Integer.parseInt(dataSize);
    }
}

原因:

1.digester的rule首先通过名称查阅对象是否有参数dataSize,发现为int类型,则调用setDataSize(int dataSize); 找不到方法,失败

2.如果找不到dataSize参数,则调用可以匹配到的setDataSize(String dataSize)方法

因而需要修改参数名或方法名使其不匹配



你可能感兴趣的:(Java,string,class)