返回对象方法的字符串数组

时间:2014-06-06 15:47:13

标签: java reflection

是否有一种简单的方法可以将对象公共方法名称作为字符串数组返回?

我有限的Java知识只能使用阅读器并扫描.java文件。

2 个答案:

答案 0 :(得分:3)

使用Class#getMethods

  

返回一个包含Method个对象的数组,这些对象反映了Class对象所代表的类或接口的所有公共方法,包括由类或接口声明的那些以及那些继承自超类和超接口。

public static List<String> getPublicMethods(Class<?> clazz) {
    Method[] publicMethods = clazz.getMethods();
    List<String> methodNames = new ArrayList<>();
    for (Method method : publicMethods) {
        methodNames.add(method.getName());
    }
    return methodNames;
}

如果您想将其严格地作为数组,请将上述方法与List#toArray一起使用:

public static String[] getPublicMethods(Class<?> clazz) {
    Method[] publicMethods = clazz.getMethods();
    List<String> methodNames = new ArrayList<>();
    for (Method method : publicMethods) {
        methodNames.add(method.getName());
    }
    return methodNames.toArray(new String[publicMethods.length]);
}

答案 1 :(得分:2)

使用reflection,例如:

Class aClass = MyObject.class;
Method[] methods = aClass.getMethods();

现在,您可以从此数组(Method[])投影字符串数组:

 List<String> methodNames = new ArrayList<>();
    for (Method method : methods) {
        methodNames.add(method.getName());
    }

按照你的意愿玩它,例如:

for (String methodName : methodNames) {
     System.out.println(methodName);
}
相关问题