從1.4到1.5,除了documented ones之外,似乎還有許多未公開的更改。如何將自定義BigDecimal轉換器設置爲Wicket 1.5中的TextField <BigDecimal>?
在1.4我有:
new TextField<BigDecimal>("capitalInput",
new PropertyModel<BigDecimal>(model, "capital")) {
@Override
public IConverter getConverter(Class<?> type) {
return new MonetaryBigDecimalConverter();
}
};
1.5,我改變了像這樣(以匹配getConverter()現在是如何申報):
new TextField<BigDecimal>("capital",
new PropertyModel<BigDecimal>(model, "capital")) {
@Override
public <C> IConverter<C> getConverter(Class<C> type) {
return new MonetaryBigDecimalConverter();
}
};
我的哪個IDE顯示爲剛剛選中分配警告。但隨後試圖建立項目它實際上是一個編譯錯誤:
incompatible types
found : com.company.MonetaryBigDecimalConverter
required: org.apache.wicket.util.convert.IConverter<C>
定製MonetaryBigDecimalConverter看起來是這樣的(1.5):
public class MonetaryBigDecimalConverter extends BigDecimalConverter {
@Override
public String convertToString(BigDecimal value, Locale locale) {
// ...
}
}
我怎麼能再次使這項工作?
如果BigDecimalConverter是來自wicket的BigDecimalConverter,那麼它應該工作,因爲它實現了IConverter。否則,您可以嘗試在自己的轉換器上實現該接口。哪個*應該*已經遵循合同... –
Nicktar
2011-12-29 13:31:32
上面的BigDecimalConverter *是來自Wicket,我實際上已經嘗試向MonetaryBigDecimalConverter添加(冗餘)IConverter,但這並沒有幫助... –
Jonik
2011-12-29 13:44:40