我正在尝试获取PsiElement的父方法。我通过使用PsiTreeUtil.getParentOfType方法获得了null。

PsiMethod m = PsiTreeUtil.getParentOfType(psiElement, PsiClass.class);


但是当我遍历树时它起作用:

PsiMethod m;
while(true){
    psiElement = psiElement.getParent();
    try{
        m = (PsiMethod)psiElement ;
        break;
    }
    catch(ClassCastException e)
    {
    }
}


有人可以解释一下为什么PsiTreeUtil.getParentOfType给出null,而通过迭代却不给出null却得到要求的结果吗?

最佳答案

我用了它,现在可以用了。

PsiMethod s = PsiTreeUtil.getParentOfType(x, PsiMethod.class, false);

10-07 13:42