Sobes.tech
Junior — Middle

Vysvětlete princip fungování mechanismu reflexe v Javě a jeho hlavní použití.

sobes.tech AI

Odpověď od AI

Reflexe v Javě je mechanismus, který umožňuje programu získávat informace o třídách, metodách, polích a konstruktorech za běhu a také dynamicky volat metody a měnit hodnoty polí.

Hlavní využití reflexe:

  • Frameworky a knihovny (například Spring) používají reflexi pro vkládání závislostí, vytváření objektů a volání metod bez explicitního znalosti tříd při kompilaci.
  • Serializace a deserializace objektů.
  • Testování (například JUnit) pro volání testovacích metod.
  • Nástroje pro analýzu kódu a ladění.

Příklad použití reflexe k volání metody:

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

Reflexe je mocná, ale její použití může ovlivnit výkon a bezpečnost, proto by měla být používána uvědoměle.