Por que eu não tenho super classes com getAllSuperclasses () na API do JDT?
Eu tenho classe A e classe B que herda A no espaço de trabalho do Eclipse.
O problema que eu tenho é que eu não tenho nada quando eu tentei obter os super tipos de tipo B usando a API do Eclipse JDT. Este é o código (eu peguei o código de -Listar todas as subclasses com nomes completos):
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
java.io.File workspaceDirectory = root.getLocation().toFile();
// 1. The name of the project in the workspace
IProgressMonitor pm = new NullProgressMonitor();
IProject orig = root.getProject(this.projectName);
orig.open(pm);
this.javaProject = JavaCore.create(orig);
orig.refreshLocal(IResource.DEPTH_INFINITE, pm);
// 2. Find the type
IType type = this.javaProject.findType("p.B"); <-- returns correct type info
ITypeHierarchy hier = type.newSupertypeHierarchy(new NullProgressMonitor());
IType[] types = hier.getAllSuperclasses(type);
System.out.println(types); <-- Returns []
Eu também adicionei o código para atualizar / atualizar os recursos no pacote.
IPackageFragmentRoot[] packageFragmentRoots = this.javaProject.getPackageFragmentRoots();
for (IPackageFragmentRoot proot: packageFragmentRoots)
{
proot.getResource().refreshLocal(IResource.DEPTH_INFINITE, null);
}
Tudo funciona bem, exceto obter as informações do tipo hierárquico. O que pode estar errado? Eu perdi alguma configuração antes de executar a API?
O meu é um aplicativo RCP sem cabeça.