首页 > 代码库 > 通过反射 拿到方法

通过反射 拿到方法

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);
        
    }
}

 

通过反射 拿到方法