全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)常見(jiàn)問(wèn)題正文

Java培訓(xùn):使用getMethods()方法獲取類(lèi)中的全部方法

更新時(shí)間:2023-12-18 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  要取得一個(gè)類(lèi)中的全部方法,可以使用Class類(lèi)中的getMethods()方法,該方法返回一個(gè)Method類(lèi)的對(duì)象數(shù)組。如果想要進(jìn)一步取得方法的具體信息,如方法的參數(shù)、拋出的異常聲明等,就必須依靠Method類(lèi)。Method類(lèi)的常用方法如表12-3所示。

  表12-3 Method類(lèi)的常用方法

1702863287265_Method類(lèi)的常用方法.jpg

  接下來(lái)筆者通過(guò)一個(gè)簡(jiǎn)單的示例,來(lái)演示下如何使用getMethods()方法獲取類(lèi)中的全部方法:

import java.lang.reflect.Method;
import java.util.Arrays;

public class MethodExample {
    public static void main(String[] args) {
        // 獲取指定類(lèi)的Class對(duì)象
        Class<?> clazz = MyClass.class;

        // 獲取類(lèi)中的全部公共方法
        Method[] methods = clazz.getMethods();

        // 打印方法名
        System.out.println("類(lèi) " + clazz.getSimpleName() + " 中的全部公共方法:");
        for (Method method : methods) {
            System.out.println(method.getName());
        }
    }
}

class MyClass {
    public void method1() {
        // 方法1
    }

    public void method2(int param) {
        // 方法2
    }

    public String method3(String str) {
        // 方法3
        return str;
    }

    private void privateMethod() {
        // 私有方法
    }
}

  在這個(gè)例子中,MethodExample類(lèi)使用了反射的getMethods()方法獲取了MyClass類(lèi)中的全部公共方法。然后通過(guò)遍歷方法數(shù)組,打印了這些方法的名稱(chēng)。

  需要注意的是,getMethods()方法只能獲取到公共(public)訪問(wèn)級(jí)別的方法,如果想要獲取所有的方法,包括私有方法和受保護(hù)的方法,可以使用getDeclaredMethods()方法。

  本文版權(quán)歸黑馬程序員Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!

  作者:黑馬程序員Java培訓(xùn)學(xué)院

  首發(fā):https://java.itheima.com

分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!