java反射

package com.reflect;java

import java.lang.reflect.InvocationTargetException;學習

/**
* 反射 學習
* 反射的功能就是 類、對象,能夠經過 反射 獲取 裏面的 方法、屬性的功能
* @author Administrator
*
*/
public class YuQingChongFuTest {對象


public static void main(String[] args) throws Exception {
//方法名稱
String setname = "test";
//值
String strdata = "這是值";
YuQingChongFuTest yuQingChongFuTest = new YuQingChongFuTest();
//動態修改
//String.class 是test的參數類型
//調用下面的test方法
yuQingChongFuTest.getClass().getMethod(setname, String.class,Integer.class).invoke(yuQingChongFuTest, strdata,123);
//                                 獲取類      獲取方法   調用方法名      方法參數類型                    啓用方法          具體類名             具體參數
}get

public void test(String str,Integer str2){
System.out.println("test()method..."+str+str2);
}string

 


/**
* 根據名稱將值set到對應的主體
* @param entity 實體類 (相似普通的bean)_
* @param name 字段名稱
* @param strdata 財務值
* @return
*/
public static Boolean setValueToName(Object entity,String name,String strdata) {
if (name!=null) {
String setname = "set" + name.substring(0, 1).toUpperCase() + name.substring(1, name.length()).toLowerCase();//得到set名稱
String getname = "get" + name.substring(0, 1).toUpperCase() + name.substring(1, name.length()).toLowerCase();//得到get名稱
try {
String Methodtype=entity.getClass().getMethod(getname).getReturnType().getName();//得到類型
if(Methodtype!=null){
if("java.lang.String".equals(Methodtype)){//字符類型
entity.getClass().getMethod(setname, String.class).invoke(entity, strdata);//動態修改
return true;
}else if("java.lang.Byte".equals(Methodtype)){
entity.getClass().getMethod(setname, Byte.class).invoke(entity, Byte.parseByte(strdata));//動態修改
return true;
}else if("java.lang.short".equals(Methodtype)){
entity.getClass().getMethod(setname, Short.class).invoke(entity, Short.parseShort(strdata));//動態修改
return true;
}else if("java.lang.Double".equals(Methodtype)){
entity.getClass().getMethod(setname, Double.class).invoke(entity, Double.parseDouble(strdata));//動態修改
return true;
}else if("java.lang.Float".equals(Methodtype)){
entity.getClass().getMethod(setname, Float.class).invoke(entity, Float.parseFloat(strdata));//動態修改
return true;
}else if("java.lang.Boolean".equals(Methodtype)){
entity.getClass().getMethod(setname, Boolean.class).invoke(entity, Boolean.parseBoolean(strdata));//動態修改
return true;
}else if("java.lang.Integer".equals(Methodtype)){
entity.getClass().getMethod(setname, Integer.class).invoke(entity, Integer.parseInt(strdata));//動態修改
return true;
}
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}it


}
return false;
}io

 

}class

相關文章
相關標籤/搜索