
【软件重构 | JDT】
同学少年
没有什么不可能!
展开
-
【代码重构 & JDT】Windows命令行运行Java文件陷入死循环解决办法
通过修改某个Java文件的AST节点生成n个新程序,然后用测试用例分别对这n个新程序进行运行。但是在运行过程中,发现有些新生成的新程序会陷入死循环的情况,后台的java.exe一直在运行。解决方法是:设置每个程序最长运行时间为10秒,超时后,再使用命令行的形式杀掉后台的java.exe进程。代码如下: //参数cmd是命令行的形式,指定测试用例的位置以及待测的程序 public static ...原创 2018-12-26 09:49:25 · 699 阅读 · 0 评论 -
【代码重构 & JDT】遍历AST,获取每个节点的所有直接子节点
public class DataNode { public ASTNode node; //所代表的的AST节点 public int label; //编号 public List<Integer> childrenLables = new ArrayList<>(); //直接的子节点的编号 public List<ASTNode> childr...原创 2018-11-02 18:47:41 · 3196 阅读 · 1 评论 -
【代码重构 & JDT】获取指定目录下Java文件对应的ICompilationUnit (可获取Binding)
/* * javaFilePath 文件的绝对路径,比如: D:\test\javatp\1B\14638316\14638316.java * javaName 文件名,比如: 14638316.java * fileDir 文件的所在文件夹路径,比如: D:\test\javatp\1B\14638316 */ public static CompilationU...原创 2018-10-12 16:54:06 · 2223 阅读 · 0 评论 -
【代码重构 & JDT】编程实现全部代码修改撤销(包括重构且不弹出确认框)
IUndoContext context= (IUndoContext)ResourcesPlugin.getWorkspace().getAdapter(IUndoContext.class); IWorkbenchPartSite workbenchpartSite = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getA原创 2017-10-11 15:25:21 · 664 阅读 · 0 评论 -
【代码重构 & JDT】判断一个方法是否是实现重写,继承重写和递归
1. 方法是否是实现重写 public static boolean methodIsImplemented(IMethodBinding methodBinding){ ITypeBinding typeBinding = methodBinding.getDeclaringClass(); List allIMethodBindings = new ArrayList();//存原创 2017-07-06 15:07:18 · 1376 阅读 · 0 评论 -
【代码重构 & JDT】判断一个类IType是否有子类
public static boolean hasSubClasses(IType typeGiven){ try { ITypeHierarchy hierarchy = typeGiven.newTypeHierarchy(new NullProgressMonitor()); IType[] subTypes = hierarchy.getAllSubtypes(typeGi原创 2017-06-14 22:34:26 · 727 阅读 · 0 评论