Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Java-отражение

Отражение Java

В этом руководстве мы изучим рефлексию — функцию программирования на Java, которая позволяет нам проверять и изменять классы, методы и т. д.

В Java отражение позволяет нам проверять и манипулировать классами, интерфейсами, конструкторами, методами и полями во время выполнения.

В Java есть класс с именем 07 который хранит всю информацию об объектах и ​​классах во время выполнения. Объект класса можно использовать для отражения.

<час>

Отражение классов Java

Чтобы отразить класс Java, нам сначала нужно создать объект Class .

И, используя объект, мы можем вызывать различные методы для получения информации о методах, полях и конструкторах, присутствующих в классе.

Существует три способа создания объектов класса:

<сильный>1. Использование метода forName()

01

Здесь 12 метод принимает имя класса, который будет отражен в качестве аргумента.

<сильный>2. Использование метода getClass()

10 

Здесь мы используем объект Dog class для создания объекта Class .

<сильный>3. Использование расширения .class

28

Теперь, когда мы знаем, как создавать объекты 29 . Мы можем использовать этот объект для получения информации о соответствующем классе во время выполнения.

<час>

Пример:отражение класса Java

32

Вывод

40

В приведенном выше примере мы создали суперкласс:Animal. и подкласс:Собака . Здесь мы пытаемся проверить класс Dog. .

Обратите внимание на заявление,

58

Здесь мы создаем объект obj из класса используя 39 метод. Используя объект, мы вызываем разные методы класса Class. .

  • obj.getName() - возвращает имя класса
  • obj.getModifiers() - возвращает модификатор доступа класса
  • obj.getSuperclass() - возвращает суперкласс класса

Чтобы узнать больше о 48 , посетите класс Java (официальная документация по Java).

Примечание :мы используем 51 class для преобразования целочисленного модификатора доступа в строку.

<час>

Отражение полей, методов и конструкторов

Пакет 61 предоставляет классы, которые можно использовать для управления членами класса. Например,

  • Класс метода - предоставляет информацию о методах в классе
  • Полевой класс - предоставляет информацию о полях в классе
  • Класс-конструктор - предоставляет информацию о конструкторах в классе
<час>

1. Отражение методов Java

75 Класс предоставляет различные методы, которые можно использовать для получения информации о методах, присутствующих в классе. Например,

61

Вывод

73

В приведенном выше примере мы пытаемся получить информацию о методах, присутствующих в Dog. учебный класс. Как упоминалось ранее, мы сначала создали объект obj из 89 используя 94 метод.

Обратите внимание на выражение,

89

Здесь 105 возвращает все методы, присутствующие внутри класса.

Также мы создали объект m из 114 учебный класс. Здесь

  • m.getName() - возвращает имя метода
  • m.getModifiers() - возвращает модификатор доступа методов в целочисленной форме
  • m.getReturnType() - возвращает возвращаемый тип методов

127 class также предоставляет различные другие методы, которые можно использовать для проверки методов во время выполнения. Чтобы узнать больше, посетите класс методов Java (официальная документация по Java).

<час>

2. Отражение полей Java

Подобно методам, мы также можем проверять и изменять различные поля класса, используя методы класса 137. учебный класс. Например,

99

Вывод

107

В приведенном выше примере мы создали класс с именем Dog. . Он включает общедоступное поле с именем type. . Обратите внимание на заявление,

114

Здесь мы получаем доступ к открытому полю Dog. class и присвоение его объекту field1 Поля класс.

Затем мы использовали различные методы 140 класс:

  • field1.set() - устанавливает значение поля
  • field1.get() - возвращает значение поля
  • field1.getModifiers() - возвращает значение поля в целочисленной форме

Точно так же мы также можем получать доступ и изменять частные поля. Однако отражение частного поля немного отличается от общедоступного. Например,

129

Вывод

134

В приведенном выше примере мы создали класс с именем Dog. . Класс содержит закрытое поле с именем color. . Обратите внимание на заявление.

146

Здесь мы получаем доступ к color и присвоение его объекту field1 из 154 учебный класс. Затем мы использовали field1 изменить доступность color и позволяет нам вносить в него изменения.

Затем мы использовали field1 для выполнения различных операций с цветом частного поля.

Чтобы узнать больше о различных методах Field , посетите Java Field Class (официальная документация по Java).

<час>

3. Отражение конструктора Java

Мы также можем проверять различные конструкторы класса, используя различные методы, предоставляемые 164. учебный класс. Например,

159

Вывод

165

В приведенном выше примере мы создали класс с именем Dog. . Класс включает два конструктора.

Мы используем отражение, чтобы найти информацию о конструкторах класса. Обратите внимание на заявление,

179

Здесь мы обращаемся ко всем конструкторам, присутствующим в Dog. и присвоение их массиву конструкторов из 176 тип.

Затем мы использовали объект c чтобы получить различную информацию о конструкторе.

  • c.getName() - возвращает имя конструктора
  • c.getModifiers() - возвращает модификаторы доступа конструктора в целочисленной форме
  • c.getParameterCount() - возвращает количество параметров, присутствующих в каждом конструкторе

Чтобы узнать о других методах 188 класс, посетите класс конструктора


java

  1. Окончательное ключевое слово Java
  2. Оператор экземпляра Java
  3. Наследование Java
  4. Вложенный статический класс Java
  5. Анонимный класс Java
  6. Одноэлементный класс Java
  7. Класс Java ArrayList
  8. Класс Java ObjectOutputStream
  9. Дженерики Java
  10. Класс файла Java