2011-12-29 11 views
3

1.4から1.5になると、documented onesに加えて多くの変更が文書化されているようです。私が持っていた1.4ではカスタムBigDecimalコンバータをWicket 1.5のTextField <BigDecimal>に設定するにはどうすればよいですか?

:1.5で

new TextField<BigDecimal>("capitalInput", 
     new PropertyModel<BigDecimal>(model, "capital")) { 
    @Override 
    public IConverter getConverter(Class<?> type) { 
     return new MonetaryBigDecimalConverter(); 
    } 
}; 

を、私はそうのような(今宣言されているか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) { 
     // ... 
    } 
} 

は、どのように私は再びこの作品を作ることができます。しかし、それは実際にコンパイルエラーだプロジェクトを構築しようとしていますか?

+0

BigDecimalConverterがwicketのものであれば、これはIConverter を実装しているので動作するはずです。それ以外の場合は、独自のコンバータでそのインターフェイスを実装しようとする可能性があります。既に契約に従っているはずです。 – Nicktar

+0

上記のBigDecimalConverterはWicketから*です。実際にMonetaryBigDecimalConverterに(冗長な)IConverter を追加しようとしましたが、それは役に立たなかった... – Jonik

答えて

関連する問題