3 Stimmen

Wie setzt man einen benutzerdefinierten BigDecimal-Konverter auf ein TextField<BigDecimal> in Wicket 1.5?

Beim Übergang von 1.4 auf 1.5 scheint es neben der neuen Version auch viele undokumentierte Änderungen zu geben. dokumentierte .

In 1.4 hatte ich:

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

Mit 1.5 habe ich das so geändert (um zu entsprechen, wie getConverter() wird nun erklärt):

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

Meine IDE zeigt nur eine ungeprüfte Zuordnungswarnung an. Aber dann versuchen, das Projekt zu bauen es ist eigentlich ein Kompilierungsfehler :

incompatible types
found   : com.company.MonetaryBigDecimalConverter
required: org.apache.wicket.util.convert.IConverter<C>

Der benutzerdefinierte MonetaryBigDecimalConverter sieht etwa so aus (1.5):

public class MonetaryBigDecimalConverter extends BigDecimalConverter {
    @Override
    public String convertToString(BigDecimal value, Locale locale) {
        // ...
    }
}

Wie kann ich das wieder zum Laufen bringen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X