eclipse的jdt简介
来源:互联网 发布:淘宝 人工服务电话号码 编辑:程序博客网 时间:2024/05/18 17:00
JDT(java development tooling)是Eclipse提供的一组API。其功能引用其官方文档上的说法:
Programmatically manipulate Java resources, such as creating projects, generating Java source code, performing builds, or detecting problems in code. Programmatically launch a Java program from the platform. Provide a new type of VM launcher to support a new family of Java runtimes. Add new functions and extensions to the Java IDE itself. 总之,提供了一系列强大的API供我们操作Java代码。
JDT实际上是将Java代码构建成一个基于DOM结构的抽象语法树AST(Abstract Syntax Tree )。代码中的每个部分都对应一个ASTNode,许多的ASTNode就构成了这个抽象的语法树。Java Class一般对应Compilation Unit node,该节点也是AST树上的顶点。创建一个AST如下:
java 代码
ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setSource("".toCharArray()); CompilationUnit unit = (CompilationUnit) parser.createAST(null); unit.recordModifications(); AST ast = unit.getAST();
其中createAST,当parse需要较长时间时,可以采用createAST(new NullProgressMonitor()),否则直接传null即可。
recordModifications()用于记录节点的变动,比如修改、删除等,当需要对AST树进行变动操作时,必须要预先调用这个方法。
比较重要的是:一个AST树上的所有节点必须都属于该AST。不允许直接将其他AST树上的节点添加该AST树上。否则会抛出java.lang.IllegalArgumentException异常。须使用ASTNode.copySubtree(AST target, ASTNode node)返回一个目标树的深度拷贝,才能进行添加操作。例如: java 代码ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setSource("".toCharArray()); CompilationUnit targetRoot= (CompilationUnit) parser.createAST(null); targetRoot.recordModifications(); parser.setSource("class T{}”".toCharArray()); CompilationUnit srcRoot= (CompilationUnit) parser.createAST(null); //这是非法操作,两者的AST源不一样 targetRoot.types().add(srcRoot.types().get(0)); //这是合法操作 targetRoot.types().add(ASTNode.copySubtree( targetRoot.getAST(), (ASTNode) srcRoot.types().get(0))); //这是合法操作 targetRoot.types().add(targetRoot.getAST().newTypeDeclaration());
- eclipse的jdt简介
- Eclipse-JDT的使用
- eclipse jdt.core(一)——简介
- Eclipse JDT的Index机制
- 调用eclipse的JDT编译java源代码
- 用eclipse的jdt来编译class
- Atitit org.eclipse.jdt 的ast 架构 Eclipse JDT API spec
- Eclipse JDT--AST入门
- Eclipse JDT--ASTParser介绍
- Eclipse JDT--ASTParser使用
- Eclipse JDT--AST入门
- eclipse JDT相关知识
- Eclipse JDT Icons
- Eclipse JDT--AST入门
- eclipse安装jdt
- eclipse kepler 安装JDT
- eclipse jdt 核心类
- eclipse的JDT的hover是如何显示出来的
- Android ---- Zygote 深入
- RHEL5 下挂载XP共享文件夹
- eclipse 多级菜单的popupmenus实现
- Chrome源码剖析、上
- 使用Httphandle 实现水印效果
- eclipse的jdt简介
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- S3C2416 +linux驱动移植之DM9000A
- 虚拟机中linux 改MAC地址方法(暂时,重启后无效)
- USACO 1.1.2 Greedy Gift Givers
- android 圆角背景和通过menu键功能弹出popupwindow
- 四个反斜杠,表示两个反斜杠,加上@,\不再表示转义字符
- Server2008 II7中配置ASP+Access运行环境
- linux下动态共享库的创建,使用与更新(包括ldconfig的使用)