包含 string 和數 類的方法 objc 基本數據類型 通過 序列 setprop

【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