首页 > 代码库 > Java_反射demo
Java_反射demo
package com.cnit.reflect;import java.lang.reflect.Field;import java.lang.reflect.Method;public class Main { /** * @param args */ public static void main(String[] args) { try { Class<?> classObj = Class.forName("com.cnit.reflect.bean.Person"); Object obj = classObj.newInstance(); //设置变量值 setFieldValue(classObj, obj,"str", "wangwu"); System.out.println(getFieldValue(classObj, obj, "str")); Object paramValue[] = new Object[1]; paramValue[0] = "liu si"; setMethodValue(classObj, obj, "setStr",paramValue , String.class); System.out.println(getMethodValue(classObj, obj, "getStr"));; } catch (Exception e) { e.printStackTrace(); } } /** * 给方法设值 * @param classLoad * 类加载器 * @param obj * 类的对象 * @param methodName * 方法名 * @param pramValue * 设置的参数的值 * @param parameterTypes * 参数的类型 */ private static void setMethodValue(Class<?> classLoad,Object obj,String methodName,Object[] pramValue,Class<?>... parameterTypes) { try { Method method = classLoad.getDeclaredMethod(methodName, parameterTypes); method.setAccessible(true); method.invoke(obj, pramValue); } catch (Exception e) { e.printStackTrace(); } } /** * 获取方法的值 * @param classLoad * 类加载器 * @param obj * 类的对象 * @param methodName * 方法名 * @return Object * 返回的值 */ private static Object getMethodValue(Class<?> classLoad,Object obj,String methodName) { try { Method method = classLoad.getDeclaredMethod(methodName); method.setAccessible(true); return method.invoke(obj); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 设置属性的值 * @param classObj * 类加载器 * @param obj * 类的对象 * @param fieldValue * 变量的值 */ private static void setFieldValue(Class<?> classObj,Object obj ,String fieldName,Object fieldValue) { try { Field field = classObj.getDeclaredField(fieldName); field.setAccessible(true); field.set(obj, fieldValue); } catch (Exception e) { e.printStackTrace(); } } /** * 获取属性的值 * @param classObj * 类加载器 * @param obj * 类的对象 * @return * 变量值 */ private static Object getFieldValue(Class<?> classObj,Object obj,String fieldName) { try { Field field = classObj.getDeclaredField(fieldName); field.setAccessible(true); return field.get(obj); } catch (Exception e) { e.printStackTrace(); } return null; } }
package com.cnit.reflect.bean;public class Person { private String str; public String getStr() { return str; } public void setStr(String str) { this.str = str; } }
java 反射
Java_反射demo
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。