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

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

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

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

1. Обзор

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

2. Пример класса и интерфейса

Чтобы продемонстрировать это, мы создадим класс AbstractExample и интерфейс InterfaceExample :

public abstract class AbstractExample {

public abstract LocalDate getLocalDate();

public abstract LocalTime getLocalTime();
}

public interface InterfaceExample {
}

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

1. Обзор

В этой статье мы рассмотрим API-интерфейс отражения Guava , который определенно более универсален по сравнению со стандартным API-интерфейсом отражения Java. ``

Мы будем использовать Guava для захвата универсальных типов во время выполнения, а также будем эффективно использовать Invokable .

2. Захват универсального типа во время выполнения

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

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

1. Обзор

Хотя методы в Java сделаны закрытыми , чтобы предотвратить их вызов из-за пределов класса-владельца, по какой-то причине нам все равно может понадобиться их вызывать.

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

В этом кратком руководстве мы рассмотрим, как мы можем проверить функциональность метода независимо от его видимости. Мы рассмотрим два разных подхода: Java Reflection API и Spring ReflectionTestUtils .

2. Видимость вне нашего контроля

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

1. Обзор

Проверка существования класса может быть полезна при определении используемой реализации интерфейса. Этот метод обычно используется в старых установках JDBC.

В этом руководстве мы рассмотрим нюансы использования Class.forName() для проверки существования класса в пути к классам Java .

2. Использование Class.forName()

Мы можем проверить существование класса с помощью Java Reflection , в частности, Class.forName() . Документация показывает, что если класс не может быть найден, будет выброшено исключение ClassNotFoundException .

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

1. Обзор

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

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

Обратите внимание, что мы будем использовать в примерах тот же класс Person , что и в предыдущей статье .

2. Настройка примитивных полей

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

1. Обзор

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

Прежде чем приступить к руководству, нам нужно понять, что модификатор закрытого доступа предотвращает случайное неправильное использование полей. Однако, если мы хотим получить к ним доступ, мы можем сделать это с помощью Reflection API.

2. Пример

Давайте определим пример класса Person с некоторыми приватными полями:

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

1. Обзор

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

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

2. Получение полей из класса

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

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

1. Введение

Библиотека Reflections работает как сканер путей к классам. Он индексирует отсканированные метаданные и позволяет нам запрашивать их во время выполнения. Он также может сохранять эту информацию, поэтому мы можем собирать и использовать ее в любой момент нашего проекта без необходимости повторного сканирования пути к классам.

В этом руководстве мы покажем, как настроить библиотеку Reflections и использовать ее в наших проектах Java.

2. Зависимость от Maven

Чтобы использовать Reflections , нам нужно включить его зависимость в наш проект:

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

1. Введение

ReflectionTestUtils является частью среды Spring Test Context. Это коллекция служебных методов на основе отражения, используемых в модуле, и сценариев интеграционного тестирования для установки непубличных полей, вызова непубличных методов и внедрения зависимостей.

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

2. Зависимости Maven

Давайте начнем с добавления последних версий всех необходимых зависимостей, необходимых для наших примеров, в наш pom.xml :

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

1. Обзор

В Java 8 была добавлена поддержка отражения параметров метода. Проще говоря, она обеспечивает поддержку получения имен параметров во время выполнения.

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

2. Аргумент компилятора

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