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.