我有一个ASTVisitor实现类,其中包含(以及其他)此方法:
@Override
public boolean visit(final ImportDeclaration node) {...}
有没有办法找出ImportDeclaration是来自ASTVisitor正在经历的项目的另一个包还是来自.jar = library-content?
我尝试了node.resolveBinding()。isSynthetic(),但是尽管我从库中导入了它,它似乎永远不会合成。
答案 0 :(得分:1)
好的,解决方案是将节点解析为IBinding,然后是ITypeBinding并调用isFromSource():
IBinding b = node.resolveBinding();
if (b instanceof ITypeBinding && !((ITypeBinding) b).isFromSource()) {
//do stuff
}