读书人

java 反照常见用法

发布时间: 2013-03-25 15:43:04 作者: rapoo

java 反射常见用法

用例主要实现动态执行实体类中set方法。

try {
String methodName = "set"+keys[i].substring(0,1).toUpperCase()+keys[i].substring(1);
Method[] methods = entry.getClass().getDeclaredMethods();
Method method = null;
for(int j=0;j<methods.length;j++){
if(methodName.equals(methods[j].getName())){
method=methods[j];
}
}
if(method!=null){
String value = jsonobj.get(keys[i]).toString();
Class<?>[] parameterClass = method.getParameterTypes();
String type = parameterClass[0].getName();
if("java.lang.String".equals(type)){
method.invoke(entry,value);
}else if("java.util.Date".equals(type)){
method.invoke(entry,new SimpleDateFormat("yyyy-MM-dd").parse(value));
}else if("java.lang.Double".equals(type)){
method.invoke(entry,Double.parseDouble(value));
}else if("java.lang.Integer".equals(type)){
method.invoke(entry,Integer.parseInt(value));
}
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}

读书人网 >编程

热点推荐