使用 JavaParser 重构一个 java 文件

问题描述

您能否使用 javaparser 库来:重命名导入的类、方法和字段? 例如:

package org.example;

import org.example.Test;

public class Example {
    public void example() {
        Test t = new test();
        t.someMethod();
        t.randomField;
   }
}

package org.example;

import org.example.Test123;

public class Example {
    public void example() {
        Test123t = new TestTest123);
        t.someOtherMethod();
        t.newName;
   }
}

编辑添加
方法重载也被考虑在内,例如:

t.someOverloadedMethod(1,2,false,null) -> t.name1(1,null)
t.someOverloadedMethod() -> t.name2()

解决方法

如果 JavaParser 不构建定义变量作用域的符号表,您就不能可靠地做到这一点。问题是您可能会尝试重命名出现在多个作用域中的变量 X。您的方法重载示例是这种情况的一个特例。