包裝測試;
導入Java . lang . reflect . field;
導入Java . lang . reflect . modifier;
導入Java . util . hashmap;
導入Java . util . map;
公共類TestUtil {
公共靜態Double TEXT _ RAT _ weight 1 = 2.0;
公共靜態Double TEXT _ RAT _ WEIGHT2 = 2.0
公共靜態Double TEXT _ RAT _ value 1b = 2.0;
公共靜態void main(String args[])
{
system . out . println(" TEXT _ RAT _ weight 1 =["+TestUtil。TEXT _ RAT _ weight 1+"]";
system . out . println(" TEXT _ RAT _ weight 2 =["+test util。TEXT _ RAT _ weight 2+"]";
system . out . println(" TEXT _ RAT _ value 1b =["+TestUtil。TEXT _ RAT _ value 1 b+ "]";
//模擬從數據庫中獲取的數據,緩存在HashMap中。
map test map = new HashMap();
test map . put(" TEXT _ RAT _ weight 1 ",new Double(1));
testMap.put("TEXT_RAT_WEIGHT2 ",new Double(3));
test map . put(" TEXT _ RAT _ value 1b ",new Double(4));
嘗試{
//獲取TestUtil的類對象。
Class & lt?& gtclazz = Class.forName("test。TestUtil”);
//獲取該類中的所有屬性。
field[]fields = clazz . getdeclaredfields();
//遍歷所有屬性
for(字段字段:字段){
//打印屬性信息,包括訪問控制修飾符、類型和屬性名。
system . out . println(field);
system . out . println(" modifier:"+modifier . tostring(field . get modifiers()));
system . out . println(" type:"+field . gettype());
System.out.println("屬性名:"+field . getname());
if(null!=testMap.get(field.getName()))
{
//通過類對象創建實例。
嘗試{
TestUtil TestUtil =(TestUtil)clazz . new instance();
//獲取具有名為studentName的屬性的Field對象,以便在下面重置其值。
field tempfield name = clazz . getfield(field . getname());
//將field的值設置為從HashMap獲得的值。
tempFieldName.set(testUtil,test map . get(field . getname()));
} catch(instantiation exception e){
// TODO自動生成的catch塊
e . printstacktrace();
} catch(IllegalAccessException e){
// TODO自動生成的catch塊
e . printstacktrace();
} catch(安全異常e) {
// TODO自動生成的catch塊
e . printstacktrace();
} catch (NoSuchFieldException e) {
// TODO自動生成的catch塊
e . printstacktrace();
}
}
}
} catch(ClassNotFoundException e){
// TODO自動生成的catch塊
e . printstacktrace();
}
system . out . println(" end TEXT _ RAT _ weight 1 =["+TestUtil。TEXT _ RAT _ weight 1+"]";
system . out . println(" end TEXT _ RAT _ weight 2 =["+test util。TEXT _ RAT _ weight 2+"]";
system . out . println(" end TEXT _ RAT _ value 1b =["+TestUtil。TEXT _ RAT _ value 1 b+ "]";
}
}