我有一个不能更改的课程:
public class A {
private String amountOfErrors;
public String getAmountOfErrors() {
return amountOfErrors;
}
public void setAmountOfErrors(String amountOfErrors) {
this.amountOfErrors = amountOfErrors;
}
}
我可以更改的bean:
<bean class="com.company.facades.A">
<property name="amountOfErrors" type="String"/>
</bean>
如何将String类型更改为BigDecimal以便像这样调用smth:
A a = new A();
a.setAmountOfErrors(BigDecimal.ZERO)
答案 0 :(得分:1)
这在某种程度上取决于您如何注入bean。但基本上只是:
public class B extends A {
public void setAmountOfErrors(BigDecimal amountOfErrors) {
this.amountOfErrors = amountOfErrors.toString();
}
}
<bean class="com.company.whatever.B">
<property name="amountOfErrors" type="BigDecimal"/>
</bean>
我实际上不确定您要对A或B上的属性做什么。主要要点是您可以创建B,但是Spring会知道它是A并将其注入为A
但是,如果要从Java调用Setter的BigDecimal版本,则需要将其作为B注入,或将注入的A(实际上是B)强制转换为B。