通过反射 拿到方法

Posted 清风追梦enjoy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过反射 拿到方法相关的知识,希望对你有一定的参考价值。

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

 

以上是关于通过反射 拿到方法的主要内容,如果未能解决你的问题,请参考以下文章

java教程——反射

java 反射代码片段

泛型反射常见应用,通过类型创建实例,通过反射实现增删改查

将 OpenGL 片段着色器设置为仅通过漫反射减少 vec4 色点的 RGB 值,而不是 alpha

[Java] 反射

反射机制