gpt4 book ai didi

java - java程序中的标识符重命名

转载 作者:行者123 更新时间:2023-12-02 06:08:25 24 4
gpt4 key购买 nike

我需要以编程方式重命名给定范围内的标识符,例如java程序中的方法。例如,给定以下 java 函数:

public void doSomething(){
int x = 10;
int y = x * 2;
int z = x + y;
}

重命名变量(x 为 a、y 为 b、z 为 c)后,我应该获得以下函数:

public void doSomething(){
int a = 10;
int b = a * 2;
int c = a + b;
}

如何以编程方式实现标识符及其引用的重命名?

我一直在研究 Eclipse AST 和 Java 模型。在任何一种情况下,我都必须对任何给定标识符的所有出现进行搜索,然后替换它们。我想知道是否有更好的方法来做到这一点(Eclipse Refactoring UI 如何支持此类变量重命名)?或者,我应该查看语言工具包(org.eclipse.ltk.core.refactoring)吗?有任何教程、示例代码或建议吗?

请帮忙。

最佳答案

我不清楚您是否希望全面执行此重命名(即所有类中的所有方法)或仅对您手动识别的特定类进行重命名。假设是后者,我建议您:

  1. 使用 Java 反射 API java.lang.reflect 来识别特定类中定义的所有需要​​本地方法的方法变量重命名。
  2. 迭代所有方法。对于每种方法,请使用 org.eclipse.jdt.core API 向下遍历编译元素的层次结构,选择本地范围的变量定义。获取变量的名称编译单元。
  3. 生成新的变量名称。类似于:旧 ==> 旧重命名。此时应用您希望的任何重命名启发式方法。
  4. 调用 Eclipse 开发工具包 org.eclipse.jdt.ui.refactoring API 方法来进行变量重命名方法内。实际上,您将调用 Eclipse 重命名变量 功能 headless 地使用此 API。

这应该可以解决问题。

关于java - java程序中的标识符重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3506397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com