java日记:getMethod的用法介绍和实例

在这里插入图片描述

先上理论请添加图片描述

通过类实例化对象的getMethods() 方法可以获得该类所包括的全部方法, 返回值是Method[]。
通过类实例化对象的getMethod()方法可以获得该类所包括的指定方法, 返回值是Method,每个Method对象对应一个方法,获得Method对象后,可以调用其invoke()接口来调用对应方法。invoke(Object obj,Object [] args):obj代表当前方法所属的对象的名称,args代表当前方法的参数列表,返回值是当前方法的返回值。

后上代码

import java.lang.reflect.Method;

public class Ts {
    
    public void myMethod() {
        System.out.println("调用了无参方法");
    }
    
    public void myMethod(String str, int num) {
        System.out.println("调用了带参数方法,参数为:" + str + ", " + num);
    }
    
    public static void main(String[] args) throws Exception {
        // 获取Class对象
        Class clazz = Ts.class;
        String a = "myMethod";
        // 获取无参方法
        Method method1 = clazz.getMethod(a);
        method1.invoke(new Ts());
        
        // 获取带参数的方法
        Method method2 = clazz.getMethod("myMethod", String.class, int.class);
        method2.invoke(new Ts(), "hello", 123);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
`getMethod` 是 Java 反射 API 中的一个方法,用于获取类中指定方法名和参数类型的方法对象。它的定义如下: ```java public Method getMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException ``` 其中,`name` 是要获取的方法名,`parameterTypes` 是参数类型的 Class 对象数组,如果方法有多个参数,则需要在数组中按顺序添加每个参数的类型。该方法会返回一个 `Method` 对象,该对象包含了指定方法的相关信息,如方法名、参数类型、返回类型等。 下面通过一个实例来说明 `getMethod` 方法的使用: ```java public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public void sayHello() { System.out.println("Hello, my name is " + name); } } ``` 在上述代码中,定义了一个 `Person` 类,包含了三个方法:构造方法、`getName` 方法和 `getAge` 方法,以及一个无参方法 `sayHello`。现在我们要使用 `getMethod` 方法获取 `Person` 类中的 `getName` 方法和 `sayHello` 方法。 ```java public class Main { public static void main(String[] args) throws NoSuchMethodException { Class<Person> personClass = Person.class; // 获取 getName 方法 Method getNameMethod = personClass.getMethod("getName"); System.out.println(getNameMethod); // 获取 sayHello 方法 Method sayHelloMethod = personClass.getMethod("sayHello"); System.out.println(sayHelloMethod); } } ``` 在上述代码中,我们首先调用 `Person.class` 获取 `Person` 类的 `Class` 对象,然后分别使用 `getMethod` 方法获取 `getName` 方法和 `sayHello` 方法,并将它们的信息打印出来。 输出结果如下: ``` public java.lang.String Person.getName() public void Person.sayHello() ``` 从输出结果可以看出,`getMethod` 方法成功获取了 `Person` 类中的指定方法,并返回了对应的 `Method` 对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hallo啊 树哥!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值