从内部类对象获取外部类对象

时间:2010-10-29 11:05:07

标签: java class reflection

简而言之,我正试图做“classObject.getDeclaredClasses()”的倒数。

我有一个接收Class<? extends Object>类型对象的方法。我想弄清楚它是否是一个内部类,如果是,我想访问周围的类'对象实例。

是否有智能API,或者我是否被迫进行字符串操作和解析?

2 个答案:

答案 0 :(得分:20)

您正在寻找Class.getDeclaringClass()方法:

  

public class getDeclaringClass()

     

如果此Class对象表示的类或接口是其成员   另一个类,返回表示它所在的类的Class对象   被宣布。如果此类或接口不是a,则此方法返回null   任何其他类的成员。如果此Class对象表示数组类,   如果是原始类型或void,则此方法返回null。

     

返回:此类的声明类

答案 1 :(得分:1)

从内部类代码引用外层实例

如果内部类代码需要引用它附加到的外部类实例,请使用外部类的名称,一个点,以及

* remember that if there is no name conflict, there is no need for any special syntax
* for code in MyInner to obtain a reference to its MyOuter:

  MyOuter.this

静态内部类

内部类可以标记为静态

我实例化的静态内部类没有外部类的实例

* static members of the outer class are visible to the inner class, no matter what their access level
* non-static members of the outer class are not available, since there is not instance of the outer class to retrieve them from