来自Package或JAR的Eclipse ASTVisitor ImportDeclaration?

时间:2014-11-18 16:09:35

标签: java eclipse eclipse-plugin abstract-syntax-tree visitor

我有一个ASTVisitor实现类,其中包含(以及其他)此方法:

@Override
public boolean visit(final ImportDeclaration node) {...}

有没有办法找出ImportDeclaration是来自ASTVisitor正在经历的项目的另一个包还是来自.jar = library-content?

我尝试了node.resolveBinding()。isSynthetic(),但是尽管我从库中导入了它,它似乎永远不会合成。

1 个答案:

答案 0 :(得分:1)

好的,解决方案是将节点解析为IBinding,然后是ITypeBinding并调用isFromSource():

    IBinding b = node.resolveBinding();
    if (b instanceof ITypeBinding && !((ITypeBinding) b).isFromSource()) {
        //do stuff
    }