Junior — Middle
Класстын жеке ыкмасын анын аныктамасынан тышкары чакырыш мүмкүнбү?
sobes.tech AI
AIден жооп
Java-da, bir sinfning xususiy (private) metodini uning ta'rifidan tashqarida to'g'ridan-to'g'ri chaqirish mumkin emas, chunki private modifikatori faqat sinf ichida kirishni cheklaydi.
Ammo, refleksiya yordamida, bu cheklovlarga qaramay, xususiy metodlarga kirish va chaqirish mumkin. Masalan:
import java.lang.reflect.Method;
class MyClass {
private void secret() {
System.out.println("Xususiy metod chaqirildi");
}
}
public class Test {
public static void main(String[] args) throws Exception {
MyClass obj = new MyClass();
Method method = MyClass.class.getDeclaredMethod("secret");
method.setAccessible(true); // kirish cheklovini olib tashlash
method.invoke(obj); // xususiy metodni chaqirish
}
}
Shu tarzda, odatiy chaqirish mumkin emas, lekin refleksiya bu cheklovni yengib o'tishga imkon beradi.