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建议的方法