0
내가 메인 클래스를 가지고 일반 텍스트 파일로 내 개체를 내보낼 수 있도록 내 자신의 빈 유틸 컨버터를 쓰기 위해 노력하고 있어요 호출되지
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:
내가 MyLongConverter을 통해 이동합니다 ID를 기대했지만, 여전히 문자열 하나를 통해가는 것 같다. 왜, 어떻게 고칠 수 있습니까? BeanUtilBean
클래스 getProperty
기능에 관계없이 정의 된 어떤 속성을 포맷의, 사용자가 요청한 속성의 String
표현을 반환하는 위
이것은 맞습니다. 각 유형을 문자열로 변환하려면 많은 경우 if/else를 수행해야합니다. 나는 변환기가 언제 ("from") 형식으로 변환하는지 생각합니다. 하지만 실제로 "로 변환 중" –