Java,反射机制,反射调用,静态方法,实例方法,Setter和Getter
说明
参考内容:
1、反射机制,调用属性(静态&非静态);2、反射机制,调用构造方法(静态&非静态)。
getter/setter方法
定义一些方法来操作成员变量,每个方法都必须有一个有意义的名称,所以就有了getter-setter方法,getter-setter方法格式和写法都是固定的,所以只要有getter-setter方法就不用煞费心思的去想方法名称了,解决了起名字难问题。并且getter-setter方法还是程序员之间的一种规范,给属性赋值立刻就会想到getter-setter方法,降低了程序员之间的沟通成本。代码案例
工具类: import org.apache.commons.lang3.StringUtils; import java.lang.reflect.Method; import java.util.List; public class ReflectCallMethod { /** * @param entryClass * @param methodName * @param * @return */ public static T invokeForStatic(Class entryClass, String methodName) { if (entryClass == null) { return null; } T result = null; try { // 反射获取 Method method = entryClass.getDeclaredMethod(methodName); method.setAccessible(true); return (T) method.invoke(entryClass); } catch (Exception e) { e.printStackTrace(); } return result; } /** * @param entryClass * @param methodName * @param classArgs * @param valueArgs * @param * @return */ public static T invokeForStatic(Class entryClass, String methodName, Class[] classArgs, Object[] valueArgs) { if (entryClass == null) { return null; } T result = null; try { Method method = entryClass.getDeclaredMethod(methodName, classArgs); method.setAccessible(true); return (T) method.invoke(entryClass, valueArgs); } catch (Exception e) { e.printStackTrace(); } return result; } /** * @param entryClass * @param methodName * @param initArgs * @param * @return */ public static T invokeForStatic(Class entryClass, String methodName, List