如何显示类不是继承的方法和字段

时间:2013-11-23 19:46:27

标签: java reflection

我想在控制台上只显示未继承的类的方法。如果我想显示所有这些,我只会使用:object.getClass().getMethods();然后我会获得在类中声明的所有方法,并且我只想获得在我正在分析的类中进行genuinly声明的那些方法。

2 个答案:

答案 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建议的内容。