利用Eclipse JDT ASTRewrite向java源码添加代码
来源:互联网 发布:程序员修炼之道 mobi 编辑:程序博客网 时间:2024/05/18 01:23
1、修改前
public class Main { public static void main(String[] args) { } public static void add() { int i = 1; System.out.println(i); }}
2、修改后
public class Main { public static void main(String[] args) { add(); } public static void add() { int i = 1; System.out.println(i); }}
3、源码
private void AddStatements() throws MalformedTreeException, BadLocationException, CoreException { IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("testAddComments"); IJavaProject javaProject = JavaCore.create(project); IPackageFragment package1 = javaProject.getPackageFragments()[0]; // get first compilation unit ICompilationUnit unit = package1.getCompilationUnits()[0]; // parse compilation unit CompilationUnit astRoot = parse(unit); // create a ASTRewrite AST ast = astRoot.getAST(); ASTRewrite rewriter = ASTRewrite.create(ast); // for getting insertion position TypeDeclaration typeDecl = (TypeDeclaration) astRoot.types().get(0); MethodDeclaration methodDecl = typeDecl.getMethods()[0]; Block block = methodDecl.getBody(); // create new statements for insertion MethodInvocation newInvocation = ast.newMethodInvocation(); newInvocation.setName(ast.newSimpleName("add")); Statement newStatement = ast.newExpressionStatement(newInvocation); //create ListRewrite ListRewrite listRewrite = rewriter.getListRewrite(block, Block.STATEMENTS_PROPERTY); listRewrite.insertFirst(newStatement, null); TextEdit edits = rewriter.rewriteAST(); // apply the text edits to the compilation unit Document document = new Document(unit.getSource()); edits.apply(document); // this is the code for adding statements unit.getBuffer().setContents(document.get()); }
阅读全文
0 0
- 利用Eclipse JDT ASTRewrite向java源码添加代码
- 利用Eclipse JDT ASTRewrite添加注释
- clipse JDT ASTRewrite修改源码后保存
- 利用Eclipse JDT抽取Java AST
- 使用eclipse的JDT实现JAVA代码格式化功能
- 利用JDT编程实现Java代码的读取、修改、编译和运行
- 调用eclipse的JDT编译java源代码
- Java代码分析器(一): JDT入门
- jdt.core.formatter.CodeFormatter格式化java代码
- Java:Mac中Eclipse添加JDK源码
- Java学习笔记五 Eclipse工具、JDT、泛型
- Eclipse 中java.io.*与jdt resources 的互换
- Eclipse JDT--AST入门
- Eclipse JDT--ASTParser介绍
- Eclipse JDT--ASTParser使用
- Eclipse JDT--AST入门
- eclipse的jdt简介
- eclipse JDT相关知识
- 恒生电子不会缺席“区块链”
- emmc-ufs-LPDDR 简介
- 博主最近学习
- EventBus简单传值
- 心得
- 利用Eclipse JDT ASTRewrite向java源码添加代码
- Android_MVP开发模式登录注册案例
- C++ 中,实现strcpy的
- 什么是比特币挖矿和区块链共识机制?
- 博客
- 逻辑卷管理
- EasyEDA 入坑
- 深度学习
- virtalbox Linux ubntu centos随笔