我有一个ASTVisitor实现类,以及其他方法:

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


有什么方法可以确定ImportDeclaration是来自ASTVisitor正在进行的项目的另一个包,还是来自.jar = library-content?

我尝试了node.resolveBinding()。isSynthetic(),但是尽管我从库中导入了文件,但它似乎从未合成过。

最佳答案

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

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

关于java - 来自Package或JAR的Eclipse ASTVisitor ImportDeclaration?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26998754/

10-10 14:38