通过JDT修改(Modify)Java代码的流程步骤

1.ICompilationUnit originalUnit = ...;// Get original compilation unit

获取ICompilationUnit实例的方式很简单,此处不再详述。

2.originalUnit.becomeWorkingCopy(new SubProgressMonitor(monitor, 1));//得到编译单元的工作副本

说明:将编译单元切换到工作副本模式,就是在内存中创建一块存放Java代码副本的地方,即工作副

本缓存。工作副本模式下,工作副本可以得到工作副本缓存,一个IBuffer的实例。该实例类似于

StringBuffer的API,对其修改就可以达到修改与之关联的 Java元素的效果。在提交代码之前,对缓存

修改一直保存在工作副本中,直至被显式提交。

3.IBuffer buffer = originalUnit.getBuffer(); // 得到工作副本缓存

eg:

//Modify buffer and reconcile

IBuffer buffer = ((IOpenable)workingCopy).getBuffer();

buffer.append("class X {}");

4.JavaModelUtil.reconcile(originalUnit); //同步

或workingCopy.reconcile(ICompilationUnit.NO_AST, false, null, null);

5.originalUnit.commitWorkingCopy(true, monitor);//保存。修改完毕,需要将代码的变化提交才能

java modify的使用方法图解,经过JDT修改(Modify)Java代码的流程步骤相关推荐

  1. java 反射之invoke方法图解

    invoke方法的过程: 深入解析Java反射(2) - invoke方法

  2. java入参为方法_Java命令注入原理结合Java Instrument技术(FreeBuf首发)

    一.前言 命令注入:恶意用户构造恶意请求,对一些执行系统命令的功能点进行构造注入,从而达到执行命令的效果. 二.演示环境搭建 这里采用springboot+swagger搭建一个模拟的web环境:启动 ...

  3. java定义一个eat方法_小黄鸭系列java基础知识 | java中的方法

    前言 今天我们要探讨的问题,是java基础语法的最后一个问题,也就是java中的方法,今天主要从以下几个方面来介绍: 方法是什么(定义) 方法的分类 方法的调用 应该说,学完今天的知识,你至少应该看懂 ...

  4. 陈硕罡分享java的四大解析方法,陈硕罡认为java安全性

    陈硕罡分享java的四大解析方法,一起来了解java实现代码: package com.cn.单向加密; import sun.misc.BASE64Decoder; import sun.misc. ...

  5. Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法

    public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...

  6. java怎么调用void方法_如何使用反射在java中调用void方法

    如果我使用反射调用方法,我可以让它正常工作而不抛出空指针异常的唯一方法是在我调用的方法中返回一个int值. 例如,我想调用的方法: public int setScore(int n) { this. ...

  7. java中如何改方法签名_我们可以在Java重写中更改方法签名吗?

    不,在覆盖超类的方法时,我们需要确保两个方法都具有相同的名称,相同的参数和相同的返回类型,否则它们将被视为不同的方法. 简而言之,如果我们更改签名,则尝试执行超类的方法时,将无法覆盖超类的方法. 原因 ...

  8. java heap space 解决方法_内存溢出错误:java堆空间

    本文为翻译的文章,作者PANKAJ,原文: https://www.journaldev.com/21010/java-lang-outofmemoryerror-java-heap-space 当J ...

  9. 浏览器无法运行java_window_浏览器无法运行JAVA脚本的解决方法,1、浏览器无法运行JAVA脚本的 - phpStudy...

    浏览器无法运行JAVA脚本的解决方法 1.浏览器无法运行JAVA脚本的解决方法. rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%Syste ...

最新文章

  1. Nagios的安装和基本配置(一:知识点总结及环境准备)
  2. 在 Python 中妙用短路机制
  3. 中文NLP的分词真有必要吗?李纪为团队四项任务评测一探究竟 | ACL 2019
  4. jQuery Mobile Slider Widget 使用js控制
  5. 拍照时不会摆Pose怎么办?
  6. mac版crt8.0.2打开无响应怎么办_Mac电脑程序无响应怎么办?教你强制退出无响应程序...
  7. 工厂方法 Factory Method
  8. 【Java】Maven工程目录下ImageIcon读图片失败爆空指针的解决方案
  9. Linux进程间通信(信号量)
  10. 深入探究VC —— 编译器cl.exe(2)【转】http://blog.csdn.net/wangningyu/article/details/4837419...
  11. 学习笔记 9.22 -9.29 补
  12. 线性判别分析LDA解析2
  13. CVE-2021-40444 Microsoft MSHTML RCE简单复现
  14. pve万兆网卡驱动_家庭基础万兆网络——最简单的方案
  15. SNMP识别负载均衡设备
  16. ubuntu中安装微信
  17. 经验分享:SecureCRT远程登录树莓派开发板
  18. 《解惑》1棉花糖实验、意志力、延迟满足感?
  19. 菜鸟学数据库——大话 char、varchar、 nchar、nvarchar之间剪不断理还乱的关系
  20. 欧美slots游戏 源码(完整)

热门文章

  1. cell delay和net delay
  2. 2021-08-02;Linux6~网络基础
  3. spring:IOC控制反转中“dI“
  4. LAmbda表达式 C#版
  5. 80后的回忆·少年篇
  6. win10系统网络连接只显示飞行模式
  7. [附源码]计算机毕业设计Python+uniapp基于Android的自来水收费系统3e359(程序+源码+LW+远程部署)
  8. QT实现文本编辑器(简易版)
  9. 给大家科普一下商标小知识没注册下来的商标,做吊牌,做包装袋,发朋友圈广告时千万不能打R。将未注册商标冒充注册商标使用的,或者使用未注册商标的,最高可处罚20%的营业额罚款
  10. C++ 单引号和双引号区别