gpt4 book ai didi

java - (类的)IJavaElement/IType 出现问题 - 如何获取父类(super class)的 IType

转载 作者:行者123 更新时间:2023-12-01 15:33:35 25 4
gpt4 key购买 nike

在 Eclipse 插件中,假设我持有 Java 类的 IJavaElement(也是 IType)
org.eclipse.jdt.core.IType

如何获取其父类(super class)的 IType(或其他一些对象表示形式,如 IJavaElement)?我不想使用 newSupertypeHierarchy() 因为这太大了。我只想要直接的、上一级的、父类(super class)的...
我尝试了以下所有方法
(在下面的代码中,“subType”是我想要获取其父类(super class)的类的 IJavaElement 表示形式):

System.out.println("subType root: "+((IType) subType).getTypeRoot().getElementName());
System.out.println("subType primary: "+subType.getPrimaryElement().getElementName());
System.out.println("subType ansc: "+((IType) subType).getAncestor(0));
System.out.println("subType dclr:"+((IType) subType).getDeclaringType());
System.out.println("subType parnt: "+((IType) subType).getParent().getElementName());

他们都没有产生父类(super class)

最佳答案

IType.getSuperclassName(),但这只会给你父类(super class)的SimpleName。问题是,父类(super class)可能不在同一个项目中,甚至可能不在某个库 jar 中。这就是为什么需要更多资源来计算。

据我所知,这是获取父类(super class)的 IType 的最佳方法:

public static IType getSupertypeOf(final IType type, IProgressMonitor monitor) throws CoreException {
return type.newSupertypeHierarchy(monitor).getSuperclass(type);
}

关于java - (类的)IJavaElement/IType 出现问题 - 如何获取父类(super class)的 IType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9247101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com