美文网首页程序员我的javaSE
javaSE使用反射获取类中的方法

javaSE使用反射获取类中的方法

作者: 冒险小A | 来源:发表于2018-03-23 23:17 被阅读0次

步骤:

  1. 获取方法所在类的字节码对象
  2. 获取类中的方法

概述:

class类中常用方法:

public Method[] getMethods();//获取包括自身和继承过来的所有的public方法
public Method[] getDeclaredMethods();//获取自身类中所有的方法(不包括继承的,和访问权限无关)
public Method getMethod(String methodName , class<?>...);//获取指定的public方法
public Method getDeclaredMethod(String methodName , class<?>...);//获取自身类中指定的方法(不包括继承的,和访问权限无关)

参数:

  • methodName:表示被调用方法的名字
  • class<?>:表示被调用方法的参数的class类型

代码:

//类中的方法
class User {
    public void dowork() {
    }
    public void dowork(String name) {
    }
    private String sayHello(String name, int age) {
        return name + "," + age;
    }
}

public class GetMethodDemo {
    //获取所有方法
    public static void main(String[] args) throws Exception {
        getAllMethods();
        System.out.println("-------------------------------------");
        getOneMethod();
    }
    private static void getAllMethods() {
        Class clz = User.class;
        //获取包括继承和借口的所有方法
        Method[] ms1 = clz.getMethods();
        for (Method ms : ms1) {
            System.out.println(ms);
        }
        //获取自身的的所有方法
        Method[] ms2 = clz.getDeclaredMethods();
        for (Method ms : ms2) {
            System.out.println(ms);
        }
    }
    
    //获取指定方法
    private static void getOneMethod() throws Exception {
        Class clz = User.class;
        //获取无参数的dowork方法
        Method m = clz.getDeclaredMethod("dowork");
        System.out.println(m);
        //获取有参数的dowork方法
        m = clz.getMethod("dowork",String.class);
        System.out.println(m);
        //获取私有的有参数的sayHello方法
        m = clz.getDeclaredMethod("sayHello",String.class,int.class);
        System.out.println(m);
    }
}

运行结果:

运行结果

相关文章

  • javaSE使用反射获取类中的方法

    步骤: 获取方法所在类的字节码对象 获取类中的方法 概述: class类中常用方法: 参数: methodName...

  • 2020-07-04【反射】

    类加载 类加载器 反射概述 获取Class类的对象 反射获取构造方法并使用 反射获取成员遍历并使用 反射获取成员方...

  • Java反射基础

    使用反射获取类的信息 反射获取类的信息是通过Class类获取的,常用方法: String getName() 获...

  • 通过反射获取及调用方法(Method)

    本篇文章包含3个方面分别是:1、获取方法使用反射获取某一个类中的方法,步骤:①找到获取方法所在类的字节码对象②找到...

  • java基础反射知识总结

    反射是什么? 在运行状态中,获取一个类的所有属性和方法。这种动态获取信息以及调用对象的方法的功能。 使用反射机制的...

  • Java学习:反射

    反射 使用反射可以直接获取class字节码文件中的类型、属性、方法。 演示代码: 新建一个名为User的类作为反射...

  • 反射机制(四)操作方法

    获取方法: 调用方法 问题一答案: 使用反射调用可变参数 使用反射调用静态方法: 静态方法不属于任何对象,属于类本...

  • Java遍历对象的属性和值

    在Java类中,我们可以使用反射中的getDeclaredFields()或者getFields()方法来获取属性...

  • 反射

    实体类 反射获取实例 反射获取方法 反射获取属性 补充 testBean.getClasses()返回调用类的所有...

  • JAVA-Reflect

    一、Class类的使用 二、Java动态加载类 三、Java获取方法信息 四、Java方法的反射

网友评论

    本文标题:javaSE使用反射获取类中的方法

    本文链接:https://www.haomeiwen.com/subject/onlfcftx.html