查看spring源码可以看出spring支持转换的数据类型已经很多了.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | /** * Actually register the default editors for this registry instance. */ private void doRegisterDefaultEditors() { this .defaultEditors = new HashMap<Class, PropertyEditor>( 64 ); // Simple editors, without parameterization capabilities. // The JDK does not contain a default editor for any of these target types. this .defaultEditors.put(Charset. class , new CharsetEditor()); this .defaultEditors.put(Class. class , new ClassEditor()); this .defaultEditors.put(Class[]. class , new ClassArrayEditor()); this .defaultEditors.put(Currency. class , new CurrencyEditor()); this .defaultEditors.put(File. class , new FileEditor()); this .defaultEditors.put(InputStream. class , new InputStreamEditor()); this .defaultEditors.put(Locale. class , new LocaleEditor()); this .defaultEditors.put(Pattern. class , new PatternEditor()); this .defaultEditors.put(Properties. class , new PropertiesEditor()); this .defaultEditors.put(Resource[]. class , new ResourceArrayPropertyEditor()); this .defaultEditors.put(TimeZone. class , new TimeZoneEditor()); this .defaultEditors.put(URI. class , new URIEditor()); this .defaultEditors.put(URL. class , new URLEditor()); // Default instances of collection editors. // Can be overridden by registering custom instances of those as custom editors. this .defaultEditors.put(Collection. class , new CustomCollectionEditor(Collection. class )); this .defaultEditors.put(Set. class , new CustomCollectionEditor(Set. class )); this .defaultEditors.put(SortedSet. class , new CustomCollectionEditor(SortedSet. class )); this .defaultEditors.put(List. class , new CustomCollectionEditor(List. class )); this .defaultEditors.put(SortedMap. class , new CustomMapEditor(SortedMap. class )); // Default editors for primitive arrays. this .defaultEditors.put( byte []. class , new ByteArrayPropertyEditor()); this .defaultEditors.put( char []. class , new CharArrayPropertyEditor()); // The JDK does not contain a default editor for char! this .defaultEditors.put( char . class , new CharacterEditor( false )); this .defaultEditors.put(Character. class , new CharacterEditor( true )); // Spring‘s CustomBooleanEditor accepts more flag values than the JDK‘s default editor. this .defaultEditors.put( boolean . class , new CustomBooleanEditor( false )); this .defaultEditors.put(Boolean. class , new CustomBooleanEditor( true )); // The JDK does not contain default editors for number wrapper types! // Override JDK primitive number editors with our own CustomNumberEditor. this .defaultEditors.put( byte . class , new CustomNumberEditor(Byte. class , false )); this .defaultEditors.put(Byte. class , new CustomNumberEditor(Byte. class , true )); this .defaultEditors.put( short . class , new CustomNumberEditor(Short. class , false )); this .defaultEditors.put(Short. class , new CustomNumberEditor(Short. class , true )); this .defaultEditors.put( int . class , new CustomNumberEditor(Integer. class , false )); this .defaultEditors.put(Integer. class , new CustomNumberEditor(Integer. class , true )); this .defaultEditors.put( long . class , new CustomNumberEditor(Long. class , false )); this .defaultEditors.put(Long. class , new CustomNumberEditor(Long. class , true )); this .defaultEditors.put( float . class , new CustomNumberEditor(Float. class , false )); this .defaultEditors.put(Float. class , new CustomNumberEditor(Float. class , true )); this .defaultEditors.put( double . class , new CustomNumberEditor(Double. class , false )); this .defaultEditors.put(Double. class , new CustomNumberEditor(Double. class , true )); this .defaultEditors.put(BigDecimal. class , new CustomNumberEditor(BigDecimal. class , true )); this .defaultEditors.put(BigInteger. class , new CustomNumberEditor(BigInteger. class , true )); // Only register config value editors if explicitly requested. if ( this .configValueEditorsActive) { StringArrayPropertyEditor sae = new StringArrayPropertyEditor(); this .defaultEditors.put(String[]. class , sae); this .defaultEditors.put( short []. class , sae); this .defaultEditors.put( int []. class , sae); this .defaultEditors.put( long []. class , sae); } } |
原文地址:http://teacherwang.blog.51cto.com/10946447/1770310