我如何获得 PsiMethodCallExpression 对象类型?
How do i get the PsiMethodCallExpression object type?
如何获取 PsiMethodCallExpression 引用的对象类型?
例如
对象 x = 新对象;
x.hashCode();
我可以使用访问者并获取PsiMethodCallExpression,我可以获取"hashCode",但是如何获取"Object"?
你可以从javadocs中了解到有问题的API,你可以通过调用PsiMethodCallExpression.resolveMethod()
获取被调用的方法,然后你可以获得声明方法的class通过调用 PsiMethod.getContainingClass()
.
编辑 - 刚刚添加了一些代码以使其对所有人都显而易见,使用具有以下内容的 "accept" 方法:
public void visitMethodCallExpression(PsiMethodCallExpression expression) {
super.visitCallExpression(expression);
PsiUtil.getMemberQualifiedName(expression.resolveMethod());
expression.resolveMethod().getContainingClass().getName();
expression.resolveMethod().getContainingClass().getQualifiedName();
}
如何获取 PsiMethodCallExpression 引用的对象类型?
例如
对象 x = 新对象; x.hashCode();
我可以使用访问者并获取PsiMethodCallExpression,我可以获取"hashCode",但是如何获取"Object"?
你可以从javadocs中了解到有问题的API,你可以通过调用PsiMethodCallExpression.resolveMethod()
获取被调用的方法,然后你可以获得声明方法的class通过调用 PsiMethod.getContainingClass()
.
编辑 - 刚刚添加了一些代码以使其对所有人都显而易见,使用具有以下内容的 "accept" 方法:
public void visitMethodCallExpression(PsiMethodCallExpression expression) {
super.visitCallExpression(expression);
PsiUtil.getMemberQualifiedName(expression.resolveMethod());
expression.resolveMethod().getContainingClass().getName();
expression.resolveMethod().getContainingClass().getQualifiedName();
}