自动生成非通用接口实现

tur*_*off 18 java generics refactoring intellij-idea automated-refactoring

我有界面

public interface ObjectBuilder<E> {  
   E buildObject();
}
Run Code Online (Sandbox Code Playgroud)

此外,该项目有很多类实现非泛型版本的接口.

class MyClassBuilder implements ObjectBuilder {
    public MyClass buildObject() {/**/}
}
Run Code Online (Sandbox Code Playgroud)

是否可以自动转换所有这些类,以便它们实现了接口的通用版本?

自动重构到这个:

class MyClassBuilder implements ObjectBuilder<MyClass> {
    public MyClass buildObject() {/**/}
}
Run Code Online (Sandbox Code Playgroud)

是否有内置或插件Intellij IDEA?还是在其他IDE?

Gui*_*ume 6

我会做什么:搜索implements ObjectBuilder并自动将所有出现的内容替换为无法编译的内容,例如

implements ObjectBuilder<FIXME>
Run Code Online (Sandbox Code Playgroud)

然后尝试编译,并手动修复所有中断.这可能比尝试使用更先进的方法更快......


Vic*_*Vic 3

您可以使用结构搜索和替换功能。但它仅在终极版中可用。