Перейти к основному содержимому

20 записей с тегом "Reflection"

Посмотреть все теги

· 15 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим отражение Java, которое позволяет нам проверять и/или изменять атрибуты времени выполнения классов, интерфейсов, полей и методов. Это особенно удобно, когда мы не знаем их имен во время компиляции.

Кроме того, мы можем создавать новые объекты, вызывать методы и получать или устанавливать значения полей с помощью отражения.

2. Настройка проекта

Чтобы использовать отражение Java, нам не нужно включать какие-либо специальные jar-файлы , какую-либо специальную конфигурацию или зависимости Maven. JDK поставляется с группой классов, объединенных в пакете java.lang.reflect специально для этой цели.

· 2 мин. чтения

1. Обзор

При работе с Java Reflection API часто встречается java.lang.reflect.InvocationTargetException .

В этом уроке мы рассмотрим это и как с этим справиться на простом примере .

2. Причина InvocationTargetException

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

· 6 мин. чтения

1. Обзор

До Java 9 API-интерфейс Java Reflection обладал суперсилой: он мог без ограничений получать доступ к закрытым членам класса. После Java 9 модульная система хочет разумно ограничить API Reflection.

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

2. Модульная система и отражение

Несмотря на то, что отражение и модульная система появляются в истории Java в разное время, они должны работать вместе, чтобы создать надежную платформу.

· 4 мин. чтения

1. Обзор

В этой короткой статье мы кратко рассмотрим, как вызывать методы во время выполнения с помощью Java Reflection API .

2. Подготовка

Давайте создадим простой класс, который мы будем использовать в следующих примерах:

public class Operations {
public double publicSum(int a, double b) {
return a + b;
}

public static double publicStaticMultiply(float a, long b) {
return a * b;
}

private boolean privateAnd(boolean a, boolean b) {
return a && b;
}

protected int protectedMax(int a, int b) {
return a > b ? a : b;
}
}

· 6 мин. чтения

1. Обзор

Иногда мы хотим получить информацию о поведении нашего приложения во время выполнения, например найти все классы, доступные во время выполнения.

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

2. Загрузчики классов

Во-первых, мы начнем обсуждение с загрузчиков классов Java . Загрузчик классов Java является частью среды выполнения Java (JRE), которая динамически загружает классы Java в виртуальную машину Java (JVM). Загрузчик классов Java отделяет JRE от знаний о файлах и файловых системах. Не все классы загружаются одним загрузчиком классов .

· 3 мин. чтения

1. Обзор

В этом уроке мы узнаем, как получить аннотации поля. Кроме того, мы объясним, как работает мета-аннотация удержания. После этого мы покажем разницу между двумя методами, которые возвращают аннотации поля.

2. Политика хранения аннотации

Во-первых, давайте посмотрим на аннотацию Retention . Он определяет жизненный цикл аннотации. Эта мета-аннотация принимает атрибут RetentionPolicy . То есть атрибут определяет жизненный цикл , в котором аннотация видна:

  • RetentionPolicy.SOURCE — виден только в исходном коде
  • RetentionPolicy.CLASS — виден компилятору во время компиляции.
  • RetentionPolicy.RUNTIME — виден компилятору и среде выполнения.

· 3 мин. чтения

1. Обзор

В этом кратком руководстве мы обсудим, как вызвать статический метод в Java с помощью API Reflection .

Мы рассмотрим два разных сценария:

  • Статический метод является общедоступным .
  • Статический метод является закрытым.

2. Пример класса

· 7 мин. чтения

1. Введение

В этом кратком руководстве мы рассмотрим разницу между instanceof , Class.isInstance и Class.isAssignableFrom . Мы узнаем, как использовать каждый метод и в чем разница между ними.

2. Настройка

Давайте настроим интерфейс и пару классов, которые будем использовать , изучая функциональность instanceof , Class.isInstance и Class.isAssignableFrom .

Во-первых, давайте определим интерфейс:

· 2 мин. чтения

1. Обзор

В этом кратком руководстве мы обсудим, как мы можем проверить, является ли метод статическим или нет в Java, с помощью API Reflection .

2. Пример

Чтобы продемонстрировать это, мы создадим класс StaticUtility с некоторыми статическими методами:

public class StaticUtility {

public static String getAuthorName() {
return "Umang Budhwar";
}

public static LocalDate getLocalDate() {
return LocalDate.now();
}

public static LocalTime getLocalTime() {
return LocalTime.now();
}
}

· 5 мин. чтения

1. Обзор

В Java класс java.lang.Class является точкой входа для всех операций отражения . Когда у нас есть объект java.lang.Class , мы можем вызывать соответствующие методы для получения объектов классов отражения.

В этом руководстве мы обсудим различия между двумя разными способами получения объекта java.lang.Class :

  • Вызов метода Object.getClass()
  • Использование синтаксиса .class

2. Краткое введение в два подхода