簡體   English   中英

class 的完全限定名稱?

[英]Fully qualified name of a class?

class MethodFinder {

    public static String findMethod(String methodName, String[] classNames) {
            for(String cn: classNames){
                if(cn.getMethods() == methodName){
                    return methodName.getName();
                }
            }
    }
}

實現一個方法,該方法將通過其名稱找到所提供方法的 class。 此方法接受兩個 arguments、方法名稱和 class 名稱數組,其中:

methodName 是需要查找的方法的全稱;

classNames 包含一個具有給定名稱的方法的 class。

它應該返回具有給定名稱的方法的 class 的完全限定名稱。

例如,方法名稱是 abs,可能的類是 String、StringBuffer 和 Math。

String 和 StringBuffer 沒有名為 abs 的方法。 所以它們不是我們正在尋找的 class。 數學 class 有一個名為 abs 的方法。 在這種情況下,該方法應返回 Math class、java.lang.Math 的完全限定名稱。

如果您不能僅限於默認 java 類(java.lang package,它是隱式導入的)

public static String findMethod(String methodName, String[] classNames) {
    for(String cn: classNames){
        try {
            Class<?> clazz = Class.forName("java.lang." + cn);
            for (Method method : clazz.getMethods()) {
                if (method.getName().equals(methodName)) {
                    return clazz.getName();
                }
            }
        } catch(ClassNotFoundException ex) {
            // ignore
        }
    }
    return null;
}

否則你將不得不搜索類路徑上的所有內容: Get all the Classes in the Classpath

因為可能有一個 class in.your.face.StringBuffer 帶有方法 abs()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM