Ключевое слово / метод для ссылки на текущий метод - PullRequest
0 голосов
/ 20 июня 2019

Есть ли способ передать текущий метод в качестве параметра, используя Reflection? Другими словами, есть ли что-то вроде ключевого слова this, но для методов?

Например:

class ReflectionUtils {
  public static void printMethod(Method method){
    System.out.print(method.getName());
  }
}

// then...

class callerClass {
  void callerMethod(){
    ReflectionUtils.printMethod(/* "this" but for methods */)
  }
}

// would print: "callerMethod"

Я хочу передать callerMethod от себя методу printMethod. Есть ли способ сделать это, не анализируя трассировку стека?

1 Ответ

1 голос
/ 20 июня 2019

Насколько я знаю, для этого нет ключевого слова.

Я не знаю ваших точных потребностей, но вы также можете сделать это, используя Class # getEnclosingMethod , например:

Method enclosingMethod = new Object() {}
                              .getClass()
                              .getEnclosingMethod();

Это похоже на то, что вы предложили.

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