[英]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.