如何在Eclipse中自动重命名Java方法?

时间:2013-12-14 23:52:54

标签: java android eclipse

我正在尝试在Eclipse Java项目中重命名一个方法,但它似乎重命名每个具有相同名称的方法。 (也许我误解了这个功能的用途 - 也许只是使用sed?)

这是一个简化的例子:

    public class C1 {
        interface Listener {
            void f();
        }

        public C2.Listener c2l = new C2.Listener() {
            public void f() {
            }
        };
    }

    public class C2 {
        interface Listener {
            void f();
        }
    }

如果我在f中选择C2方法,并从“重构”菜单中选择“重命名”以将其重命名为g,则C1.Listener.f也会重命名,结果C1更改为:

    public class C1 {
        interface Listener {
            void g();
        }

        public C2.Listener c2l = new C2.Listener() {
            public void g() {
            }
        };
    }

我预计会改为:

    public class C1 {
        interface Listener {
            void f();
        }

        public C2.Listener c2l = new C2.Listener() {
            public void g() {
            }
        };
    }

有没有办法让它只重命名C2.Listener.f

我在Eclipse Helios和Android开发工具22.3.0中尝试过。

1 个答案:

答案 0 :(得分:4)

这似乎是Eclipse中的一个错误,似乎也发生在Kepler上。即便如此,您仍可按照以下步骤解决问题:

转到首选项> Java的。在标题“Refactor Java Code”下的该页面上,取消选中“在没有对话框的情况下在编辑器中重命名”选项

现在,当您重构它时,您可以选择预览更改,在此处可以取消选中该框以将更改应用于C1.Listener()