Использование Java-отражения для установки поля через его метод установки - PullRequest
2 голосов
/ 11 марта 2012

Предположим, у моего класса есть имя поля с именем

private long _quantity;

Я создал для него геттер и сеттер (например, getQty и setQty).способ в отражении Java, когда я использую field.set(...), чтобы заставить его пройти через его установщик?

Я только что прочитал тег @Access ... Кто-нибудь имеет опыт использования @Access?это может быть использовано для принудительного доступа к полю в метод?

Ответы [ 4 ]

5 голосов
/ 11 марта 2012

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

Если у вас есть дескриптор на самом поле, set не будет проходить через ваш метод.

2 голосов
/ 11 марта 2012

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

0 голосов
/ 11 марта 2012

Нет, вы не можете сделать это с отражением.Единственная технология на Java VM, о которой я знаю, которая делает что-то похожее, - это AspectJ, она позволяет вам регистрировать аспекты, которые перехватывают доступ к полю .Но даже это не будет работать с отражением.

0 голосов
/ 11 марта 2012

Предполагая, что имя поля соответствует методам получения / установки, возможно, вы могли бы использовать getDeclaredMethods, найти правильный метод и использовать его?Смотри http://java.sun.com/developer/technicalArticles/ALT/Reflection/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...