Junior — Middle
Оё имкон дорад, ки усули хусусии синфро аз берун аз таърифаш даъват кард?
sobes.tech AI
Ҷавоб аз AI
Дар Java, наметавонед мустақиман як усули хусусии синфи аз берун аз муайян кардани он даъват кунед, зеро модификатори private дастрасиро танҳо дар дохили худи синф маҳдуд мекунад.
Аммо, бо ёрии рефлексия, имкон дорад ба усулҳои хусусӣ дастрасӣ пайдо кунед ва онҳоро даъват кунед, новобаста аз ин маҳдудиятҳо. Масалан:
import java.lang.reflect.Method;
class MyClass {
private void secret() {
System.out.println("Маслиҳати хусусӣ даъват шуд");
}
}
public class Test {
public static void main(String[] args) throws Exception {
MyClass obj = new MyClass();
Method method = MyClass.class.getDeclaredMethod("secret");
method.setAccessible(true); // маҳдудиятро бартараф мекунад
method.invoke(obj); // даъвати усули хусусӣ
}
}
Ба ҳамин тариқ, даъвати оддӣ имконнопазир аст, аммо рефлексия имкон медиҳад, ки ин маҳдудиятро убур кунед.