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

Dog*_*Dog 6 java eclipse android

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

这是一个简化的例子:

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

        public C2.Listener c2l = new C2.Listener() {
            public void f() {
            }
        };
    }
Run Code Online (Sandbox Code Playgroud)

    public class C2 {
        interface Listener {
            void f();
        }
    }
Run Code Online (Sandbox Code Playgroud)

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

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

        public C2.Listener c2l = new C2.Listener() {
            public void g() {
            }
        };
    }
Run Code Online (Sandbox Code Playgroud)

我预计它会改为:

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

        public C2.Listener c2l = new C2.Listener() {
            public void g() {
            }
        };
    }
Run Code Online (Sandbox Code Playgroud)

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

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

小智 4

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

转到首选项 > Java。在该页面的“重构 Java 代码”标题下,取消选中“在编辑器中重命名而不使用对话框”选项

现在,当您重构时,它会为您提供预览更改的选项,在这里您可以取消选中该框以将更改应用到 C1.Listener()