我需要动态地找到对象中的方法和公共属性的列表。我无法访问该类的定义。是否可以在给定对象引用的情况下获取对象的方法列表?如果是这样,怎么样?
答案 0 :(得分:6)
您可以通过在引用上调用getClass()
来获取课程。从那里,您可以调用getMethods(),getDeclaredMethods()等。示例代码显示java.lang.String
中的方法:
import java.lang.reflect.Method;
public class Test {
public static void main(String[] args) {
showMethods("hello");
}
private static void showMethods(Object target) {
Class<?> clazz = target.getClass();
for (Method method : clazz.getMethods()) {
System.out.println(method.getName());
}
}
}
查看Class
的文档,了解有关如何获取方法等的更多选项。
答案 1 :(得分:2)
java reflection api可以为你做到这一点。
http://download.oracle.com/javase/tutorial/reflect/class/classMembers.html
答案 2 :(得分:1)
在这里查看java反射中的一个很好的介绍:
http://tutorials.jenkov.com/java-reflection/index.html
通过反射,您可以获得给定类的每个方法和对象(在更多功能旁边)