gpt4 book ai didi

java - 使用 PropertyUtils.setProperty 时类中没有 setter 方法

转载 作者:行者123 更新时间:2023-11-30 07:30:53 31 4
gpt4 key购买 nike

当我尝试使用 Apache beanUtils 在我的 bean 中设置日期属性时,它失败并显示“类中没有 setter 方法”。非日期属性设置正确。

以下代码失败,属性“availableFrom”在类“class com.brightgreenstar.entities.CapitalAsset”中没有 setter 方法

if (value instanceof String){
if ((key.equals("lastUpdatedDate")) || (key.equals("availableFrom")) || (key.equals("availableTo"))|| (key.equals("purchaseDate"))) {
DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss ZZZZ");
Date date = df.parse((String)value);
PropertyUtils.setProperty(asset,key,date);
// PropertyUtils.setSimpleProperty(asset,key,value); // Also fails for dates
}else{
PropertyUtils.setSimpleProperty(asset,key,value);
}
} else{
PropertyUtils.setSimpleProperty(asset,key,value);
}

如果我不使用 PropertyUtils 更新日期属性,而只是直接调用 setter(例如 asset.setAvailableFrom),那么它可以正常工作。这对我来说是可行的解决方案,但我更喜欢使用 PropertyUtils。

if (value instanceof String){
if ((key.equals("lastUpdatedDate")) || (key.equals("availableFrom")) || (key.equals("availableTo"))|| (key.equals("purchaseDate"))) {
DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss ZZZZ");
Date date = df.parse((String)value);
if (key.equals("availableFrom")){
asset.setAvailableFrom(date); // This works
}
}else{
PropertyUtils.setSimpleProperty(asset,key,value);
}
}else{
PropertyUtils.setSimpleProperty(asset,key,value);
}

任何建议表示赞赏。

CapitalAsset bean:

public class CapitalAsset {

private Date availableFrom;
private Date availableTo;
public String getAvailableFrom(){
try {
DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss z");
return df.format(availableFrom);
} catch (Exception e) {
return "";
}
}

public void setAvailableFrom(Date availableFrom) {
this.availableFrom = availableFrom;
}

public String getAvailableTo(){
try {
DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss z");
return df.format(availableTo);
} catch (Exception e) {
return "";
}
}

public void setAvailableTo(Date availableTo) {
this.availableTo = availableTo;
}
}

最佳答案

需要包含一个返回日期的 getter:

    public Date getAvailableFrom(){
return availableFrom;
}

关于java - 使用 PropertyUtils.setProperty 时类中没有 setter 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36152349/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com