Java 如何在未声明时从Eclipse重命名方法/字段

Java 如何在未声明时从Eclipse重命名方法/字段,java,eclipse,Java,Eclipse,我不是Java和Eclipse的新手,这个问题不像Alt+Shift+R或重构重命名 假设在utils.jar中有一个方法 public class A { public void taste() {} } 然后我在当前项目中使用了它 public class taste { public static void taste() { A taste = new A(); return taste.taste(); } } 好的,现在

我不是Java和Eclipse的新手,这个问题不像
Alt
+
Shift
+
R
重构
重命名

假设在
utils.jar
中有一个方法

public class A {
    public void taste() {} 
}
然后我在当前项目中使用了它

public class taste {
    public static void taste() {
        A taste = new A();
        return taste.taste(); 
    }
}
好的,现在我在
utils.jar
中发现
taste
不是我想要的词,然后我将
utils.jar
更改为
test

public class A {
    public void test() {} 
}
那么,在那之后,我如何才能将
A.taste()
更改为
A.test()
,就像使用
Alt
+
Shift
+
R

public class taste {
    public static void taste() {
        A taste = new A();
        return taste.test();  // only change function A.taste to test
    }
}
我发现
Search
Java
可以精确地找到
A.taste
函数,但我不知道如何将其全部替换为
test

Alt+Shift+R在这种情况下可能有用

  • A
    的旧源代码放入项目中。例如,
    src/some_package/A.java

    这将覆盖库中的类
    utils.jar

  • 使用重构工具重命名该方法

    您现在可以这样做,因为
    A
    的源代码可用

  • 从项目中删除
    A
    的源代码
  • 将更新的lib
    utils.jar
    添加到项目中

  • 我认为在一个库中重命名一个函数是一个坏主意,你应该将它用作黑盒。如何考虑使用某种别名(基本上围绕它包装一个类)?您可以将鼠标移动到红色下划线方法名,并按<代码>重命名为XXX < /代码>。option@XtremeBaumer不像我想的那么简单:-),我需要替换我项目中的所有引用,上面的示例只是一个简化场景,您需要utils.jar的源代码来完成此操作。Eclipse不会重命名jar中类文件中的方法。使用
    CTRL+H
    文件搜索
    然后选择底部的
    Replace…
    ,这样你就可以
    Alt+Shift+R
    就像
    Refactor
    重命名
    一样,不适合这种情况:-谢谢,似乎这是解决问题的唯一方法。我希望eclipse能够支持更多的重构功能,以重命名不存在的函数/字段,但开发人员可以手动提供签名。如果eclipse支持某种API迁移,这将是一个很好的功能。例如,如果新API中不再存在某个方法,则这是一个comiler错误。但是,如果该类仍然存在,它可能会通过显示包含适用方法的下拉列表来建议快速修复。