BeanUtils与PropertyUtils区别
生活随笔
收集整理的這篇文章主要介紹了
BeanUtils与PropertyUtils区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
BeanUtils與PropertyUtils區別以及java.util.Date發生異常問題:
除BeanUtils外還有一個名為PropertyUtils的工具類,它也提供copyProperties()方法,作用與BeanUtils的同名方法十分相似,主要的區別在于后者提供類型轉換功能,即發現兩個JavaBean的同名屬性為不同類型時,在支持的數據類型范圍內進行轉換,而前者不支持這個功能,但是速度會更快一些。BeanUtils支持的轉換類型如下:
????* java.lang.BigDecimal
????* java.lang.BigInteger
????* boolean and java.lang.Boolean
????* byte and java.lang.Byte
????* char and java.lang.Character
????* java.lang.Class
????* double and java.lang.Double
????* float and java.lang.Float
????* int and java.lang.Integer
????* long and java.lang.Long
????* short and java.lang.Short
????* java.lang.String
????* java.sql.Date
????* java.sql.Time
????* java.sql.Timestamp
這里要注意一點,java.util.Date是不被支持的,而它的子類java.sql.Date是被支持的。因此如果對象包含時間類型的屬性,且希望被轉換的時候,一定要使用java.sql.Date類型。否則在轉換時會提示argument mistype異常。 解決方法一:如果變為java.sql.Date這樣用BeanUtils用可以和String進行copy property了. Address1 addr3=new?Address1(); ?????? System.out.println(StringUtils.center("test", 56,"-")); ?????? addr2.setDate(Date.valueOf("2007-5-9")); //???? PropertyUtils.copyProperties(addr2, addr3); ?????? BeanUtils.copyProperties(addr3, addr2); ?????? System.out.println(addr3.getDate()); 解決方法二:自定義Converter的方法:Defining Your Own Converters The?ConvertUtils?class supports the ability to define and register your own String --> Object conversions for any given Java class. Once registered, such converters will be used transparently by all of the?BeanUtilsmethods (including?populate()). To create and register your own converter, follow these steps:
????* java.lang.BigDecimal
????* java.lang.BigInteger
????* boolean and java.lang.Boolean
????* byte and java.lang.Byte
????* char and java.lang.Character
????* java.lang.Class
????* double and java.lang.Double
????* float and java.lang.Float
????* int and java.lang.Integer
????* long and java.lang.Long
????* short and java.lang.Short
????* java.lang.String
????* java.sql.Date
????* java.sql.Time
????* java.sql.Timestamp
這里要注意一點,java.util.Date是不被支持的,而它的子類java.sql.Date是被支持的。因此如果對象包含時間類型的屬性,且希望被轉換的時候,一定要使用java.sql.Date類型。否則在轉換時會提示argument mistype異常。 解決方法一:如果變為java.sql.Date這樣用BeanUtils用可以和String進行copy property了. Address1 addr3=new?Address1(); ?????? System.out.println(StringUtils.center("test", 56,"-")); ?????? addr2.setDate(Date.valueOf("2007-5-9")); //???? PropertyUtils.copyProperties(addr2, addr3); ?????? BeanUtils.copyProperties(addr3, addr2); ?????? System.out.println(addr3.getDate()); 解決方法二:自定義Converter的方法:Defining Your Own Converters The?ConvertUtils?class supports the ability to define and register your own String --> Object conversions for any given Java class. Once registered, such converters will be used transparently by all of the?BeanUtilsmethods (including?populate()). To create and register your own converter, follow these steps:
- Write a class that implements the?Converter?interface. The?convert()?method should accept thejava.lang.Class?object of your application class (i.e. the class that you want to convert to, and a String representing the incoming value to be converted.
- At application startup time, register an instance of your converter class by calling theConvertUtils.register()?method.
總結
以上是生活随笔為你收集整理的BeanUtils与PropertyUtils区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我们的后花园需要如何保护
- 下一篇: ctfmon是什么启动项_电脑启动项没有