Отражение определяет интерфейс java.lang.reflect.Member который реализуется java.lang.reflect.Field, java.lang.reflect.Method, и java.lang.reflect.Constructor . Эти объекты будут обсуждены в этом уроке. Для каждого элемента урок опишет связанные API, чтобы получить объявление и информацию о типе, любые операции, уникальные для элемента (например, устанавливая значение поля или вызывая метод), и ошибки, с которыми обычно встречаются. Каждое понятие будет иллюстрировано с примерами кода и связало вывод, которые приближают некоторое ожидаемое отражательное использование.
Отметьте: Согласно Спецификации языка Java, Java SE 7 Выпусков, элементы class являются наследованными компонентами тела class включая поля, методы, вложенные классы, интерфейсы, и перечислимые типы. Так как конструкторы не наследованы, они не элементы. Это отличается от классов с реализацией java.lang.reflect.Member.
Поля
У полей есть тип и значение. java.lang.reflect.Field class обеспечивает методы для того, чтобы они получили доступ к информации о типе и установили и получили значения поля на данном объекте.
Получение Типов поля описывает, как получить объявленные и универсальные типы поля
Методы имеют возвращаемые значения, параметры, и могут выдать исключения. java.lang.reflect.Method class обеспечивает методы для полученного информация о типе для параметров и возвращаемого значения. Это может также использоваться, чтобы вызвать методы на данный объект.
API Reflection для конструкторов определяются в java.lang.reflect.Constructor и подобны тем для методов, с двумя главными исключениями: во-первых, у конструкторов нет никаких возвращаемых значений; во-вторых, вызов конструктора создает новый экземпляр объекта для данного class.