Предположим, у меня есть эти классы:Инлайн класс с использованием супер класс рефакторинга
class GoodClass
{
//... stuff...
public GoodClass(...) {...}
//... stuff...
}
class BadClass extends GoodClass
{
public BadClass(...) {super(...);}
}
class SomeOtherClass extends BadClass
{
//... stuff...
}
Я хочу удалить BadClass
и использовать GoodClass
везде.
Есть ли способ сделать это легко с помощью IntelliJ IDEA? Таким образом, он должен буквально заменить все использования BadClass с помощью GoodClass: переменные/типы полей должны быть изменены, вызовы конструктора должны быть заменены, унаследованные классы должны менять родителя, а все остальное, если я что-то забыл.
Я попытался использовать «встроенный класс», но я этого не делаю.
Вы просто пытались найти все, Заменить (Ctrl + Shift + R)> BadClass с GoodClass ?, затем удалить переименованный BadClass, очевидно, –
Возможно не сразу, так как то, что вы делаете это не дневная выдутый рефактор. Можете ли вы гарантировать, что использование между «BadClass» и «GoodClass» совместимо друг с другом? То есть, все методы, вызываемые в «BadClass», возвращают то же самое, что и «GoodClass»? – Makoto
@ cricket_007 Найти/заменить работы, но не идеально. Например. если у меня есть поле «BadClass badClass», я ожидаю наличия «GoodClass goodClass» после рефакторинга (аналогично рефакторингу переименования классов) и так далее. – kan