Модификаторы динамического доступа - PullRequest
1 голос
/ 30 июля 2011

Существуют ли языки, которые позволяют изменять модификатор доступа для данного члена во время выполнения?

Например, для скрытия / отображения информации в зависимости от контекста, в котором используется объект.

1 Ответ

0 голосов
/ 30 июля 2011

Большинство языков могут делать это, но это часто приводит к снижению производительности. Например, вы можете изменить доступность частного конструктора в Java следующим образом.

Constructor constructor = MyClass.class.getDeclaredConstructor(paramTypes);
constructor.setAccessible(true);
MyClass instance = (MyClass)constructor.newInstance(params);

Посмотрите на методы, доступные для объекта класса на вашем любимом языке, и вы увидите несколько способов получить доступ к методам или полям, и, как только вы разберетесь с ними, вы можете злоупотреблять ими по своему усмотрению.

...