InterviewSolution
| 1. |
How Can I Customise The Conversion? |
|
Answer» If you don't like the default way beanutils converts strings to various datatypes, then SIMPLY register a custom converter. So for example if you would like whitespace to be ignored when converting strings to NUMERIC values, then create your own converter classes and register them with ConvertUtils for the datatypes you want to be AFFECTED. Note that in this case it would be easier to write a generic "filter" class that wraps the existing converters rather than create NEW converters classes: private STATIC class WhiteSpaceConverterFilter implements Converter { public Object convert(Class clazz, Object value) { ConvertUtils.register(new WhiteSpaceConverterFilter(new IntegerConverter()), Integer.TYPE); ConvertUtils.register(new WhiteSpaceConverterFilter(new IntegerConverter(), Integer.class); ConvertUtils.register(new WhiteSpaceConverterFilter(new LongConverter()), Long.TYPE); ConvertUtils.register(new WhiteSpaceConverterFilter(new LongConverter()), Long.class); .... If you don't like the default way beanutils converts strings to various datatypes, then simply register a custom converter. So for example if you would like whitespace to be ignored when converting strings to numeric values, then create your own converter classes and register them with ConvertUtils for the datatypes you want to be affected. Note that in this case it would be easier to write a generic "filter" class that wraps the existing converters rather than create new converters classes: private static class WhiteSpaceConverterFilter implements Converter { public Object convert(Class clazz, Object value) { ConvertUtils.register(new WhiteSpaceConverterFilter(new IntegerConverter()), Integer.TYPE); ConvertUtils.register(new WhiteSpaceConverterFilter(new IntegerConverter(), Integer.class); ConvertUtils.register(new WhiteSpaceConverterFilter(new LongConverter()), Long.TYPE); ConvertUtils.register(new WhiteSpaceConverterFilter(new LongConverter()), Long.class); .... |
|