我想在控制台上只显示未继承的类的方法。如果我想显示所有这些,我只会使用:object.getClass().getMethods();
然后我会获得在类中声明的所有方法,并且我只想获得在我正在分析的类中进行genuinly声明的那些方法。
答案 0 :(得分:1)
有一种方法可以满足您的需求:getDeclaredMethods()
。它返回所有声明的方法,而不是getMethods()
,它返回所有 public 方法,无论是否继承。
答案 1 :(得分:1)
Method
类有一个getDeclaringClass()
方法,它返回声明方法的类。您可以像这样使用它
public class Driver {
public static void main(String[] args) {
Method[] methods = Driver.class.getMethods();
for (Method method : methods) {
if (method.getDeclaringClass().equals(Driver.class)) {
System.out.println(method);
}
}
}
public void doSomething() {
}
}
换句话说,检查方法是否以您感兴趣的实际类型声明。
或者使用Marko建议的内容。