Аннотировать функцию и определять, когда она вызывается во время выполнения - Kotlin / Java - PullRequest
0 голосов
/ 18 сентября 2018

Здравствуйте, позвольте мне попытаться прояснить это: я хочу сделать почти то же самое, что и аннотации Android.Например:

@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
public void someFunction() {
}

Я хотел бы сделать что-то подобное, но во время выполнения.Аннотируйте функцию, и когда эта функция вызывается, я выполняю обработку (возможно, с использованием отражения) и, в зависимости от результата, продолжаю выполнять аннотированную функцию или нет.Что-то вроде:

@IsLoggedIn()
public void someFunction() {
}

Функция someFunction () будет выполняться, только если пользователь вошел в систему.

1 Ответ

0 голосов
/ 18 сентября 2018

То, что вы хотите сделать, часто происходит в экосистеме Java, особенно с проектами Spring. То, на что вы захотите взглянуть, это Аспектно-ориентированное программирование и, в частности, как аспектно-ориентированное программирование достигается в пружине .

Как вы и подозревали, это влечет за собой отражение, чтобы обернуть аннотированные методы, поэтому дополнительную логику можно предварительно сформировать до или после вызова метода. В случае, если вас это интересует, можно написать аспект, чтобы проверить, вошел ли пользователь в систему, прежде чем вызывать упакованный метод.

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