예를 들어, java.util.Map의 모든 인스턴스에 대해 Converter를 등록하려면이 작업을 수행하는 방법이 있습니까?Commons BeanUtils를 사용할 때 특정 클래스의 모든 하위 클래스에 대해 Converter를 등록하는 가장 좋은 방법은 무엇입니까?
new BeanUtilsBean().getConvertUtils().register(new MyConverter(), Map.class);
여기서 MyConverter#convert()
메서드는 Map 인스턴스에 대해 호출됩니다. 예를 들어 HashMap)?
이 배경은 BeanUtils를 사용하여 데이터베이스에서 여러 가지 다른 빈을 채우는 것입니다. 해당 속성 중 일부는 특정 인터페이스를 구현하는 열거 형이며 값을 설정하기 위해 사용자 지정 루틴이 필요합니다. 문제의 인터페이스 구현에 대해 하나의 변환기 클래스를 등록하려고했지만이 작업을 수행 할 방법을 찾을 수 없었기 때문에 콩의 모든 속성 클래스를 검사하여 즉시 수행해야했습니다.
이것은 다소 불쾌한 것처럼 보입니다.이 작업을 수행하는 더 좋은 방법이 분명있을 것입니다.
에서
나는 블로그 게시물을 읽고 솔루션을 가지고 및 의견 매우 유망 해 보입니다 - 감사합니다! ( '개인 클래스 EnumConverter 변환기 { @Override 공공 T 변환 (클래스 종류, 개체 값) { 반환 type.cast를 구현 type.getMethod : 자바 6/7 및 제네릭 –
는 EnumConverter 같은 일이되고있다 ("fromValue", String.class) .invoke (null, value.toString())); } }'. 그러나 나는 반성을 제거 할 수 없었다. – Francois