Integerを頭ゼロ埋めで表示するラベルを作る

public class CodeLabel extends Label<Integer> {
    private static final long serialVersionUID = 1L;
    private int zeroPadLength;
    public CodeLabel(String id, int zeroPadLength) {
        super(id);
        this.zeroPadLength = zeroPadLength;
    }
    
    @Override
    @SuppressWarnings("unchecked")
    public <T> IConverter<T> getConverter(Class<T> type) {
        if(type == Integer.class){
            return new ZeroPaddingIntegerConverter(zeroPadLength);
        }
        return super.getConverter(type);
    }
}

無名クラスでやってもいいけど、何度も出てきそうなので、クラスにしてみる。Generics使ったときのgetConverter()の書き方がいまいちわからんなあ。

追記:変だと思っていたらm2でここらかわってました。

public class CodeLabel extends Label<Integer> {
    private static final long serialVersionUID = 1L;
    private int zeroPadLength;
    public CodeLabel(String id, int zeroPadLength) {
        super(id);
        this.zeroPadLength = zeroPadLength;
    }
    
    @Override
    public IConverter<Integer> getConverter(Class<Integer> type) {
        return new ZeroPaddingIntegerConverter(zeroPadLength);
    }
}

まあそうだよね。納得。