我的學習之路_第十七章_JavaUtils
【BeanUtils工具類】
javaBaen : Java和數據庫所對應關系實體類
表(Utils)-->類(User)
表中的列-->類中字段(屬性)
表中的行-->根據類創建的對象
javaBean包含:
1.私有的成員變量
2.公共的getter/setter方法
3.空參數構造方法
4.toSting方法
5.實現序列化接口
BeanUtils工具類的三個方法:(工具類的方法都是靜態的,直接類名.方法調用)
沒有返回值 setProperty(Object obj ,String name , Object value) 設置屬性值
沒有返回值 getProperty(Objcet obj , String name) 獲取屬性值
方法參數:
Objcet obj : 要賦值/獲取值的javaBean對象
String name : 成員變量的名字(屬性名)
Objcet value : 給成員變量賦的實際使用的值.
▲ BeanUtils 工具類可以操作的數據類型有: 基本數據類型,基本數據類型的包裝類,String類型, 以上3種類型的一維數組
不管屬性是什麽數據類型,使用BeanUtils工具類都可以使用字符格式的數據類型來賦值(內部會把字符轉換為基本類型,相當於使用
了包裝類中的parsexxx() )
populated(Object bean, Map<String, String[] > properties)
將Map數據封裝到指定javabean中,一般用於將表單的所有數據封裝到javabean
相當於遍歷Map集合,根據Map集合的key(屬性名),依次使用Map集合value,給成員變量註入值
參數:
Object obj : 要復制的javabean對象
Map<String,String[]> properties : Map集合
key : String,成員變量的名字(屬性名)
value : String[] , 字符串類型的數組
如果成員變量是一個數組,那麽就會把value數組的所有值賦值給成員變量
如果成員變量不是一個數組,那麽就會使用value數組的第一個值,賦值給成員變量
【自定義populate方法,增強方法的用處】
好處:1.讓用戶使用自己定義的populate方法不用處理異常
2.不用創建對象,傳class文件即可!
3.參數增加泛型,傳什麽類型的javabean就返回什麽類型的javabean
改造後的populate方法
populate(Class<E> clazz ,Map<String ,String[]> properties) 返回值: E
改在的代碼具體如下
public static <E> E populate(Class<E> clazz , Map<String, String[]> properties){
try{
//2.內部通過反射創建Javabean對象
E obj = clazz.newInstance();
//3.調用BeanUtils工具類的方法populate
BeanUtils.populate(obj, properties);
//5.把對象返回給用戶
retuen obj;
}catch(Exception e){
//4.對populate方法的異常進行try...catch處理
e.printStackTrace();
//把編譯異常,轉換為運行時異常,給成員變量註入值失敗,讓程序停止下來
throw new RuntimeException("註入值失敗");
}
★
cn.itcast.dmeo05.domain.Student: 使用反射創建對象
cn/itcast/dmeo05/domain/Student.java: 使用IO讀取/寫入文件
我的學習之路_第十七章_JavaUtils