Eclipse ASTVisitor ImportDeclaration from Package or JAR?



我有一个ASTVisitor实现类,其中(除其他外)使用此方法:

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

有没有办法找出进口声明是否来自 ASTVisitor 正在经历的项目的另一个包,或者它是否来自 .jar = 库内容?

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

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

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

相关内容

最新更新