使用JDT搜索引擎的名称在IProject中查找TypeDeclaration

时间:2017-02-10 19:57:03

标签: java eclipse eclipse-plugin eclipse-jdt

如何使用JDT搜索引擎在currentWorksheet.Cells["C2"].Value = 5; currentWorksheet.Cells["C3"].Value = 15; currentWorksheet.Cells["C4"].Formula = "SUM(C2:C3)"; currentWorksheet.Cells["D2"].Value = 15; currentWorksheet.Cells["D3"].Value = 25; currentWorksheet.Cells["D4"].Formula = "SUM(D2:D3)"; //Calculate the formulas and the overwrite them with their values currentWorksheet.Cells.Calculate(); foreach (var cell in currentWorksheet.Cells.Where(cell => cell.Formula != null)) cell.Value = cell.Value; 中找到TypeDeclaration? 我想使用某个类的包和名称(例如IProject)来查找特定"my.package.ClassName"中的TypeDeclaration

我知道我可以使用Java AST和AST访问者来比较当前包和节点名称,但我更喜欢使用字符串搜索。

1 个答案:

答案 0 :(得分:1)

如果您已经拥有该课程的合格名称并拥有一个项目,则无需使用该搜索引擎。

第1步:获取代表您项目的IJavaProject实例:

IJavaProject jProj = JavaCore.create(proj);

第2步:找到代表您班级的IType

IType type = jProj.findType(fullyQualifiedname);

第3步:获取包含编译单元:

ICompilationUnit cu = type.getCompilationUnit();

第4步:将其传递给ASTParser TypeDeclaration CompilationUnit(作为astParser.setSource(cu); 的一部分):

ASTParser

(假设您已经拥有maxSize,知道如何调用解析并检查生成的AST)。