0
我試圖寫我自己的豆utils的轉換器,這樣我可以在我的對象導出到一個純文本文件定製的BeanUtils轉換不叫
我有主類
public class BeanUtilsTest {
public static void main(String[] args) {
try{
MyObject myObject = new MyObject();
myObject.setId(3l);
myObject.setName("My Name");
ConvertUtilsBean cub = new ConvertUtilsBean();
cub.deregister(String.class);
cub.register(new MyStringConverter(), String.class);
cub.deregister(Long.class);
cub.register(new MyLongConverter(), Long.class);
System.out.println(cub.lookup(String.class));
System.out.println(cub.lookup(Long.class));
BeanUtilsBean bub = new BeanUtilsBean(cub, new PropertyUtilsBean());
String name = bub.getProperty(myObject, "name");
System.out.println(name);
String id = bub.getProperty(myObject, "id");
System.out.println(id);
}catch(Exception ex){
ex.printStackTrace();
}
}
}
漫長的轉換
public class MyLongConverter implements Converter{
@Override
public Object convert(Class clazz, Object value) {
System.out.println("Long convert");
return value.toString()+"l";
}
}
的字符串轉換
public class MyStringConverter implements Converter{
@Override
public Object convert(Class clazz, Object value) {
System.out.println("String convert");
return value.toString()+":";
}
}
最後我對象
public class MyObject {
Long id;
String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
輸出
String convert
My Name:
String convert
3:
我期待的ID將通過MyLongConverter,但似乎仍在通字符串之一。爲什麼以及如何解決這個問題?
請告知 感謝
這是正確的。如果將每種類型轉換爲字符串,我必須做很多if/else if case。我認爲轉換器在我註冊時會轉換哪種(「從」)類型。但它實際上是將「轉換」爲「 – 2012-07-19 19:12:05