我一直在Eclipse中使用ASTVisitor类,以便在方法声明和方法调用节点获取数据。我现在还想在Class Declaration节点获取数据,但我在API中找不到任何允许我这样做的东西。我是不是错过了什么?这样做的好方法是什么?
如果您想获得ClassDeclaration
,您应该查找TypeDeclaration对象,因为:
类型声明是类声明和接口声明。
一旦找到它,您只需要使用isInterface((方法,如果它返回false,那么它就是ClassDeclaration
。
您感兴趣的节点"类声明"实际上是TypeDeclaration,即从中获取所需信息的节点。例如:
- 修饰符列表("public"等(允许您计算哪些修饰符以及有多少修饰符(node.modifiers(((
- 超级类的类型(如果存在((node.getSuperclassType(((
- 方法的所有声明
- 等等
但是,这些是您需要从TypeDeclaration 构建的详细信息
但是,这两种方法都是继承的TypeDeclaration,可以帮助您以自上而下的方式获取遍历树所需的所有信息。