SlideShare uma empresa Scribd logo
1 de 10
Рефлексия
Виталий Унгурян
unguryan@itstep.org
Рефлексия
Рефлексия (от поздне лат. reflexio -
обращение назад) - это механизм
исследования данных о программе
во время её выполнения.
Рефлексия позволяет исследовать
информацию о полях, методах и
конструкторах классов.
Рефлексия
Можно также выполнять операции над
полями и методами которые
исследуются.
Рефлексия в Java осуществляется с
помощью Java Reflection API. Этот
интерфейс API состоит из классов
пакетов java.lang и java.lang.reflect.
Рефлексия может
Определить класс объекта.
Получить информацию о:
модификаторах класса, полях,
методах, конструкторах, суперклассе,
аннотациях
Выяснить, какие константы и методы
принадлежат интерфейсу.
Рефлексия может
Создать экземпляр класса, имя
которого неизвестно до момента
выполнения программы.
Получить и установить значение
свойства объекта.
Вызвать метод объекта.
Создать новый массив, размер и тип
компонентов которого неизвестны до
момента выполнения программ.
Получение объекта типа Class
Object a = new MyClass();
Class aclass = a.getClass();
Class aclass = MyClass.class;
Class iclass = Integer.class;
Получение имени класса
Class c = myObject.getClass();
String s = c.getName();
Объект типа String, возвращаемый
методом getName(), будет содержать
полностью уточнённое имя класса, т.е.
если типом объекта myObject будет
Integer, то результат будет вида
java.lang.Integer .
Нахождение суперклассов
Class c = myObj.getClass();
Class superclass = c.getSuperclass();
Определение интерфейсов, реализуемых
классом
Class c = LinkedList.class;
Class[] interfaces = c.getInterfaces();
for(Class cInterface : interfaces) {
System.out.println( cInterface.getName() );
}
Определение интерфейсов, реализуемых
классом
Class c = LinkedList.class;
Class[] interfaces = c.getInterfaces();
for(Class cInterface : interfaces) {
System.out.println( cInterface.getName() );
}

Mais conteúdo relacionado

Mais procurados

Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеЛекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследование
metaform
 

Mais procurados (13)

Java. Сборщик мусора. Работа с памятью.
Java.  Сборщик мусора. Работа с памятью. Java.  Сборщик мусора. Работа с памятью.
Java. Сборщик мусора. Работа с памятью.
 
Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.
 
принципы ооп и программирование классов в C#
принципы ооп и программирование классов в C#принципы ооп и программирование классов в C#
принципы ооп и программирование классов в C#
 
Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеЛекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследование
 
Исключения и ошибки
Исключения и ошибкиИсключения и ошибки
Исключения и ошибки
 
Java Core. Lecture# 1. Intro
Java Core. Lecture# 1. IntroJava Core. Lecture# 1. Intro
Java Core. Lecture# 1. Intro
 
Java. Многопоточность.
Java. Многопоточность.Java. Многопоточность.
Java. Многопоточность.
 
Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.
 
Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация
 
Java Core. Lecture# 3. Part# 1. Abstract classes.
Java Core. Lecture# 3. Part# 1. Abstract classes.Java Core. Lecture# 3. Part# 1. Abstract classes.
Java Core. Lecture# 3. Part# 1. Abstract classes.
 
Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.
 
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoF
 
Ввведение в java
Ввведение в javaВвведение в java
Ввведение в java
 

Destaque (11)

Аннотации в java
Аннотации в javaАннотации в java
Аннотации в java
 
Сетевое взаимодействие
Сетевое взаимодействиеСетевое взаимодействие
Сетевое взаимодействие
 
JDBC
JDBCJDBC
JDBC
 
XML
XMLXML
XML
 
Введение в Spring
Введение в SpringВведение в Spring
Введение в Spring
 
Сервлеты
СервлетыСервлеты
Сервлеты
 
Date & Time in Java SE 8
Date & Time in Java SE 8Date & Time in Java SE 8
Date & Time in Java SE 8
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
JSP
JSPJSP
JSP
 
JSTL
JSTLJSTL
JSTL
 
Введение в сетевые технологии
Введение в сетевые технологииВведение в сетевые технологии
Введение в сетевые технологии
 

Semelhante a Рефлексия в java

02 - Классы и Объекты
02 - Классы и Объекты02 - Классы и Объекты
02 - Классы и Объекты
phearnot
 
принципы объектного подхода
принципы объектного подходапринципы объектного подхода
принципы объектного подхода
Andrey Radionov
 
Msu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And ObjectsMsu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And Objects
olegol
 
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
Technopark
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
metaform
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
metaform
 
Lec 2 Java
Lec 2 JavaLec 2 Java
Lec 2 Java
itc73
 
C++ осень 2012 лекция 2
C++ осень 2012 лекция 2C++ осень 2012 лекция 2
C++ осень 2012 лекция 2
Technopark
 
Java. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and ObjectsJava. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and Objects
colriot
 
презентация конспекта лекций
презентация конспекта лекцийпрезентация конспекта лекций
презентация конспекта лекций
student_kai
 

Semelhante a Рефлексия в java (20)

JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.
 
Java core-lect6-part2-reflection-api.ppt
Java core-lect6-part2-reflection-api.pptJava core-lect6-part2-reflection-api.ppt
Java core-lect6-part2-reflection-api.ppt
 
Классы и объекты С#
Классы и объекты С#Классы и объекты С#
Классы и объекты С#
 
02 - Классы и Объекты
02 - Классы и Объекты02 - Классы и Объекты
02 - Классы и Объекты
 
08 - Java. Java-классы: взгляд изнутри
08 - Java. Java-классы: взгляд изнутри08 - Java. Java-классы: взгляд изнутри
08 - Java. Java-классы: взгляд изнутри
 
Наследование и полиморфизм
Наследование и полиморфизмНаследование и полиморфизм
Наследование и полиморфизм
 
принципы объектного подхода
принципы объектного подходапринципы объектного подхода
принципы объектного подхода
 
Msu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And ObjectsMsu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And Objects
 
Step 3.1
Step 3.1Step 3.1
Step 3.1
 
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
 
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
 
Lec 2
Lec 2Lec 2
Lec 2
 
Lec 2 Java
Lec 2 JavaLec 2 Java
Lec 2 Java
 
C++ осень 2012 лекция 2
C++ осень 2012 лекция 2C++ осень 2012 лекция 2
C++ осень 2012 лекция 2
 
Java. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and ObjectsJava. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and Objects
 
презентация конспекта лекций
презентация конспекта лекцийпрезентация конспекта лекций
презентация конспекта лекций
 
Oop java.generics
Oop java.genericsOop java.generics
Oop java.generics
 
Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"
 

Mais de Unguryan Vitaliy

Работа в команде, управление программными проектами
Работа в команде, управление программными проектамиРабота в команде, управление программными проектами
Работа в команде, управление программными проектами
Unguryan Vitaliy
 

Mais de Unguryan Vitaliy (15)

Модульное тестирование.
Модульное тестирование. Модульное тестирование.
Модульное тестирование.
 
Stream API
Stream APIStream API
Stream API
 
Архитектурный шаблон MVC
Архитектурный шаблон MVCАрхитектурный шаблон MVC
Архитектурный шаблон MVC
 
Работа в команде, управление программными проектами
Работа в команде, управление программными проектамиРабота в команде, управление программными проектами
Работа в команде, управление программными проектами
 
Системы контроля версий
Системы контроля версийСистемы контроля версий
Системы контроля версий
 
Принципы SOLID
Принципы SOLIDПринципы SOLID
Принципы SOLID
 
Введение в язык программирования «Java»
Введение в язык программирования «Java»Введение в язык программирования «Java»
Введение в язык программирования «Java»
 
Введение в hibernate
Введение в hibernateВведение в hibernate
Введение в hibernate
 
Cookies, session и другое в JSP
Cookies, session и другое в JSPCookies, session и другое в JSP
Cookies, session и другое в JSP
 
java 8
java 8java 8
java 8
 
Java. Интерфейс Reference - типы ссылок
Java. Интерфейс Reference -  типы ссылокJava. Интерфейс Reference -  типы ссылок
Java. Интерфейс Reference - типы ссылок
 
Java. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередьJava. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередь
 
Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.
 
Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.
 
List - списки
List - списки List - списки
List - списки
 

Рефлексия в java