Sobes.tech
Junior — Middle

Wyjaśnij zasadę działania mechanizmu refleksji w Java i jego główne zastosowania.

sobes.tech AI

Odpowiedź od AI

Refleksja w Javie to mechanizm umożliwiający programowi uzyskiwanie informacji o klasach, metodach, polach i konstruktorach w czasie wykonywania, a także dynamiczne wywoływanie metod i zmienianie wartości pól.

Główne zastosowania refleksji:

  • Frameworki i biblioteki (np. Spring) używają refleksji do wstrzykiwania zależności, tworzenia obiektów i wywoływania metod bez konieczności znajomości klas podczas kompilacji.
  • Serializacja i deserializacja obiektów.
  • Testowanie (np. JUnit) do wywoływania metod testowych.
  • Narzędzia do analizy kodu i debugowania.

Przykład użycia refleksji do wywołania metody:

Class<?> clazz = Class.forName("com.example.MyClass");
Object obj = clazz.getDeclaredConstructor().newInstance();
Method method = clazz.getMethod("myMethod", String.class);
method.invoke(obj, "cześć");

Refleksja jest potężna, ale jej użycie może wpływać na wydajność i bezpieczeństwo, dlatego należy stosować ją świadomie.