package com.sxt.method1; /* * 通过反射 拿到方法 */ import java.lang.reflect.Method; import java.lang.reflect.Modifier; public class TestMethod { public static void main(String[] args) throws Exception { //获取类信息 Class<?> class1 = Class.forName("com.sxt.entity.Student"); //创建对象 Object obj = class1.newInstance(); //获取所有方法 Method[] methods = class1.getDeclaredMethods(); //遍历查看所需要的方法信息 for(Method m : methods){ System.out.println(m.getName()+"\t"+m.getReturnType()+"\t"+Modifier.toString(m.getModifiers())); } System.out.println("-------------------------------------"); // //获取对应的public方法 // Method method = class1.getMethod("sum", int.class,int.class); // Object result = method.invoke(obj, 3,4); // System.out.println("result:"+result); //获取private的对应方法 突破了封装的限制 Method m = class1.getDeclaredMethod("sum", int.class,int.class); System.out.println(m.getName()+"\t"+m.getReturnType()+"\t"+Modifier.toString(m.getModifiers())); m.setAccessible(true); Object result = m.invoke(obj, 3,4); System.out.println("result:"+result); } }
时间: 2024-10-12 10:38:49