Sobes.tech
Junior — Middle

Принсипи кори механизмии рефлекс дар Java ва истифодаҳои асосии онро шарҳ диҳед.

sobes.tech AI

Ҷавоб аз AI

Рефлексия дар Java — механизм, ки имкон медиҳад, ки барнома дар вақти иҷро маълумот дар бораи синфҳо, методҳо, майдонҳо ва конструкторҳоро ба даст орад, инчунин методҳоро динамикӣ даъват кунад ва арзишҳои майдонҳоро тағир диҳад.

Барномаҳои асосии рефлексия:

  • Фреймворҳо ва китобхонаҳо (масалан, Spring) рефлексияро барои ворид кардани вобастагиҳо, эҷоди объектҳо ва даъвати методҳо бе донистани ошкоро дар бораи синфҳо дар вақти компиляция истифода мебаранд.
  • Сериалкунии ва десериалкунии объектҳо.
  • Санҷишҳо (масалан, JUnit) барои даъвати методҳои санҷишӣ.
  • Воситаҳои таҳлили код ва хатоёбӣ.

Масалан барои истифодаи рефлексия барои даъвати метод:

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

Рефлексия қувватманд аст, аммо истифодаи он метавонад ба иҷроиш ва бехатарӣ таъсир расонад, бинобар ин бояд бо огоҳӣ истифода шавад.