2015-06-12 42 views
0

有沒有辦法只得到myObject decleard(不僅是公共) 沒有得到繼承方法的方法?在java中的反射,方法的繼承

+2

['getDeclaredMethods方法()'](https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getDeclaredMethods())。 –

回答

4

您正在尋找Class#getDeclaredMethods

返回包含反映此Class對象,包括公共,保護,默認(包)訪問表示的類或接口的所有聲明的方法的Method對象的數組,和私人方法,但不包括繼承方法

2

讓我們假設你甲肝2班的名字是MyClass的和MyParentClass

class MyParentClass { 
    private void method1(){} 
    public void method2(){} 
} 
class MyClass extends MyParentClass { 
    private void method3(){} 
    public void method4(){} 
} 

您可以使用getDeclaredMethods(),如下是給只有MyClass的

public class TestClass { 
    public static void main(String args[]){ 
    Method[] m = MyClass.class.getDeclaredMethods(); 
    for(int i = 0; i < m.length; i++) { 
     System.out.println("method = " + m[i].toString()); 
    } 
    } 
} 
+0

這是一個質量很差的答案。它甚至沒有鏈接到文檔,更不用說總結方法描述了。雖然它確實回答了這個問題,但它並沒有完全做到。 –