Как я могу получить тип объекта PsiMethodCallExpression? - PullRequest
0 голосов
/ 10 декабря 2018

Как получить тип объекта, на который ссылается PsiMethodCallExpression?

например

Object x = new Object;x.hashCode ();

Я могу использовать посетителя и получить выражение PsiMethodCallExpression, а также получить hashCode, но как мне получить "Object"?

1 Ответ

0 голосов
/ 10 декабря 2018

Как вы можете узнать из javadoc для рассматриваемых API, вы можете получить вызываемый метод, вызвав PsiMethodCallExpression.resolveMethod(), и после этого вы можете получить класс, в котором метод объявлен, вызвав PsiMethod.getContainingClass().

Редактировать - просто добавьте некоторый код, чтобы сделать его понятным для всех и каждого, используйте метод "accept" со следующим:

public void visitMethodCallExpression(PsiMethodCallExpression expression) {
       super.visitCallExpression(expression);
       PsiUtil.getMemberQualifiedName(expression.resolveMethod());
       expression.resolveMethod().getContainingClass().getName();
       expression.resolveMethod().getContainingClass().getQualifiedName();
}
...