如何在Java Reflection中的类下获取所有方法信息?
本文以我以前的文章為基礎(chǔ) 。 在本文中,我們將看到如何使用Java Reflection檢索類相關(guān)信息。 我們將重點介紹方法名稱。
注意:我將創(chuàng)建一個單獨的反射器實用程序類,在該類中,我們在其構(gòu)造函數(shù)中輸入一個目標類,然后使用一個單獨的方法檢索信息。 這樣,我們可以隔離我們的需求。 在開始之前,請先查看此內(nèi)容 。
如何在一個類中獲取所有聲明的方法名稱?
這意味著,我們將獲得在類內(nèi)部聲明的方法名稱(公共,私有,默認,受保護),即不是繼承的方法。
public String[] getAllOwnMethodNames(){ArrayList<String> allMethods = new ArrayList<String>();for(Method aMethod : myClass.getDeclaredMethods()){ allMethods.add("Method Name : "+aMethod.getName()+" , Full Name : "+aMethod.toString());}return allMethods.toArray(new String[allMethods.size()]);}如何從一個類(包括其自己的超類,接口的繼承的,實現(xiàn)的方法)中訪問所有方法名稱?
public String[] getAllPubliAndInheritedMethodNames(){ArrayList<String> allMethods = new ArrayList<String>();for(Method aMethod : myClass.getMethods()){ allMethods.add("Method Name : "+aMethod.getName()+" , Full Name : "+aMethod.toString());}return allMethods.toArray(new String[allMethods.size()]);}注意:要獲得詳細信息,我們使用getName()和toString()方法。
對于這兩種情況,我們都可以指定方法名稱來獲取該特定方法。
myClass.getDeclaredMethod(<Name of the method as string>, parameter of that method) myClass.getMethod(<Name of the method as string>, parameter of that method)在這兩種情況下,我們都需要知道方法的名稱。 有時,對于一個類,我們需要知道某個方法是Getter還是setter方法。 我們可以應用一個小的字符串過濾器,如下所示:
要知道它是否是Getter方法:
aMethod.getName().startsWith("set");要知道它是否是一個Setter方法:
aMethod.getName().startsWith("get");翻譯自: https://www.javacodegeeks.com/2015/01/how-to-get-all-method-information-under-a-class-in-java-reflection.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的如何在Java Reflection中的类下获取所有方法信息?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 水星150m无线宽带路由器如何设置150
- 下一篇: 电脑打字文章软件(电脑专用打字软件)