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); } }
まあそうだよね。納得。