Loligan. Звідки фреймверку знати від вашому джавадоке?)
Давайте просто приклад - сериализация в json
class A private String name = "test";
>
на виході ми отримуємо
завдяки рефлексії стало відомо що у класу є поле name, і можливість отримати його значення.
далі
В Spring найпопулярніша анотація @Autowired, за допомогою неї виконується впровадження залежностей. Завдяки рефлексії, фреймверк дізнається, що ти в своєму класі зазначив поле це анотацією, завдяки рефлексії він знає якого типу це поля і що потрібно знайти бін такого типу, і завдяки рефлексії він вставить цей бін в поле твого класу. І це все відбувається динамічно
Eugene. попросту кажучи рефлексія ще корисна якщо потрібно щось дізнатися про клас закритим від очей?
Eugene. ну щодо цього я в курсі. тепер я знаю де можна застосовувати це на практиці і мені стало набагато зрозуміліше. Дякуємо.
Ну вестч ця, досить хитра. Я все не пригадаю тому дивився інформацію по ній давно, і використовував всього разок чи що.
Але, точно можу сказати що вона допомагає знищувати об'єкт в обхід збирачеві сміття, тобто негайно.
Також можна отримати список публічних методів і виконати їх, заздалегідь не знаючи назви.
А навіщо знищувати об'єкт до збирача сміття? Хоча якщо виконуються великі обчислення. але знову ж більшість обчислень виконуються в методах, і якщо створювати які-небудь спискові масиви всередині методу то вони автоматом віддалятися після завершення методу, ну або якщо працювати з тими ж обліковим масивами об'єктів будь-якого класу можна просто і так очистити його без рефлексії (якщо це саме так працює як ви говорите).
Справа в тому що б мені що то зрозуміти мені потрібно зрозуміти де це можна застосувати. Але ось цього я зрозуміти не можу так як мені просто не зрозуміло де це може використовуватися на практиці.
Ось тому я його майже і забув. Рефлексія досить специфічна і ситуативна. Але зачинити клас буває потрібно, так як сміттяр неохоче згрібає довгоживучі класи.