Java 如何显示类';s不是继承的方法和字段
我想在控制台上只显示未继承的类的方法。如果我想显示它们,我只需要使用:Java 如何显示类';s不是继承的方法和字段,java,reflection,Java,Reflection,我想在控制台上只显示未继承的类的方法。如果我想显示它们,我只需要使用:object.getClass().getMethods()但是我会得到类中声明的所有方法,我只想得到我正在分析的类中真正声明的那些方法。有一个方法正好满足您的需要:getDeclaredMethods()。它返回所有已声明的方法,而不是getMethods(),后者返回所有公共方法,无论是否继承。该方法类有一个getDeclaringClass()方法,该方法返回声明该方法的类。你可以这样使用它 public class D
object.getClass().getMethods()代码>但是我会得到类中声明的所有方法,我只想得到我正在分析的类中真正声明的那些方法。有一个方法正好满足您的需要:getDeclaredMethods()
。它返回所有已声明的方法,而不是getMethods()
,后者返回所有公共方法,无论是否继承。该方法
类有一个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建议的方法