import java.lang.reflect.Method; class Preson { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } public class MethodReflect { /** * 调用反射类中的方法 */ public static void main(String[] args) { try { String attrbute = "name"; //属性名称 Class<?> cls = Class.forName(Preson.class.getName()); Object obj = cls.newInstance(); Method setMethod = cls.getMethod("set" + initcap(attrbute), String.class); Method getMethod = cls.getMethod("get" + initcap(attrbute)); //initcap(attrbute)返回"Name" setMethod.invoke(obj, "liuqiangaa"); //invoke相当于 实例化的类调用.setName("") System.out.println(getMethod.invoke(obj)); //相当于 例化的类调用.getName() } catch (Exception e) { e.printStackTrace(); } } //将字符串的首字母变为大写字母 public static String initcap(String str) { return str.substring(0, 1).toUpperCase() + str.substring(1); } }
反射系列之Method方法反射
最新推荐文章于 2023-08-25 18:15:51 发布