2010-10-29 2 views
7

В двух словах я пытаюсь выполнить обратное значение «classObject.getDeclaredClasses()».Получите внешний объект класса из внутреннего объекта класса

У меня есть метод, который получает объект типа Class<? extends Object>. Я хочу выяснить, является ли это внутренним классом, и если это так, я хочу получить доступ к экземпляру объекта окружающего класса.

Есть ли для этого смарт-API, или я вынужден выполнять некоторые манипуляции и разбор строк?

ответ

20

Вы ищете метода Class.getDeclaringClass():

Открытый класс getDeclaringClass()

Если класс или интерфейс, представленный этим объектом класса является членом другого класса, возвращает объект класса, представляющего класс, в котором был объявлен . Этот метод возвращает значение null, если этот класс или интерфейс не является членом любого другого класса. Если этот объект класса представляет класс массива, примитивный тип или void, то этот метод возвращает null.

Возвращает: объявляющий класс для этого класса

+0

тьфу, я чувствую себя глупо. Конечно, я ищу это. Благодаря! –

1

REFERENCING внешнего класс Instance от внутреннего код класса

Если код внутреннего класса необходима ссылка на экземпляр внешнего класса, что он прикреплен к, использовать имя внешнего класса, точкой, и это

* 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 
Смежные вопросы