我正在使用org.eclipse.jdt.core.IMethod
并在界面上调用method.rename(newName, true, new NullProgressMonitor());
。
它重构了接口方法,但无法重构其实现类 - 方法。
例如:
interface Animal {
void eat(); // refactors here
}
class Dog implements Animal {
// fails to refactor this
void eat() {
}
}
请帮忙!
答案 0 :(得分:0)
看起来是正确的。
代码应该查找此方法的实现(通过Java Search Engine API),并相应地将重写方法重命名为同一重构的一部分。
答案 1 :(得分:0)
谢谢Gosu!
但这对我有用!
RenameMethodProcessor processor = new RenameVirtualMethodProcessor(method);
processor.setNewElementName(newName);
processor.setUpdateReferences(true);
RenameRefactoring refactoring = new RenameRefactoring(processor);
refactoring.checkAllConditions(new NullProgressMonitor());
Change res = refactoring.createChange(new NullProgressMonitor());
res.perform(new NullProgressMonitor());