我有一个ICompilationUnit,尝试找出它属于哪个workingSet,或者什至有一个workingSet。我已经看过ICompilationUnit拥有的不同方法,但是我没有找到任何有帮助的方法。有人有主意吗?

最佳答案

编译单元可以是0、1或许多工作集的成员。您将必须在工作集列表中进行搜索,以查看其中包含哪些工作集。

使用以下方法获取工作集:

IWorkingSetManager manager = PlatformUI.getWorkbench().getWorkingSetManager();

IWorkingSet [] sets = manager.getAllWorkingSets();


对于每个工作集,使成员具有:

IAdaptable [] members = set.getElements();


成员可以是很多事情,instanceof ICompilationUnit可能对某些成员有用,或者您可能需要调整:

ICompilationUnit unit = (ICompilationUnit)member.getAdapter(ICompilationUnit.class);


注意:getAdapter调用的确切语法因Eclipse版本而异,因为在4.5中添加了泛型支持。

09-04 02:21