Reflection в Java: описание, примеры, применение

Reflection в Java - это возможность программы получать доступ к своей структуре и данным во время выполнения. Используя Reflection, можно получить информацию о классах, их полях, методах, конструкторах и прочих элементах; а также создавать новые объекты, вызывать методы, изменять значения полей во время выполнения программы.

Примеры использования Reflection в Java:

1. Получение информации о классе:


Class clazz = MyClass.class;
System.out.println("Class: " + clazz.getName());

2. Получение информации о полях класса:


Class clazz = MyClass.class;
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
    System.out.println("Field name: " + field.getName());
    System.out.println("Field type: " + field.getType());
}

3. Создание объекта класса:


Class clazz = MyClass.class;
Object instance = clazz.newInstance();

4. Вызов метода класса:


Class clazz = MyClass.class;
Method method = clazz.getDeclaredMethod("myMethod");
method.setAccessible(true); // установить доступ
method.invoke(instance);

5. Изменение значения поля класса:


Class clazz = MyClass.class;
Field field = clazz.getDeclaredField("myField");
field.setAccessible(true);
field.set(instance, "new value");

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

Похожие вопросы на: "reflection java "

Методы JS contains: поиск элементов в массивах и строках
Как возвести в степень в Python: простое руководство
NP Mean: расчет среднего арифметического в Python
Main Image - огромный выбор качественных изображений и фотографий
Что такое теги li и ul и как их использовать в HTML?
Request Header or Cookie Too Large - How to Fix the Error?
JS Animate: Придайте жизнь вашим веб-страницам
"Tuple Object Does Not Support Item Assignment" - Explanation and Solution
<h1>React CSS Modules: Styling React Components with Encapsulated CSS
AlgoProg - ваш путеводитель в мире программирования и алгоритмов