假设data
是一个普通的Kotlin数据类,我想用with
结构包围一个块,这样
myFun(data.start, data.end, data.name)
变成
with(data) { myFun(start, end, name) }
这可以通过IntelliJ重构来实现吗(最好是使用键盘快捷键)。我在IntelliJ 2022.3中找不到任何合适的选项
假设data
是一个普通的Kotlin数据类,我想用with
结构包围一个块,这样
myFun(data.start, data.end, data.name)
变成
with(data) { myFun(start, end, name) }
这可以通过IntelliJ重构来实现吗(最好是使用键盘快捷键)。我在IntelliJ 2022.3中找不到任何合适的选项
1条答案
按热度按时间m2xkgtsf1#
我不知道有这样的重构,也不知道有什么方法可以一步完成。
然而,我通常只从中提取一个函数:
1.用
Ctrl + Alt + M
从表达式中提取函数1.(有时)如果
data
是在函数中捕获的,而不是自动作为param传递的,我会通过在它上面使用Ctrl + Alt + P
使它成为一个param,如果data
是一个属性,无论您的新函数在哪里结束,都可以使用它,那么就可能发生这种情况。1.通过在
data
参数声明上使用Alt + Enter
并选择快速操作Convert parameter to receiver
,将参数转换为接收方现在您应该:
然后你可以这样(我个人喜欢这样),但如果你想让你的最终结果看起来像你的问题,你可以做几个步骤:
1.手动将
data.myFun2()
更改为with(data) { myFun2() }
(更简单,因为现在只需更改一个示例)1.用
Ctrl + Alt + N
内联对myFun2()
的调用但是如果你想得到这个结果,整个序列可能会让你觉得矫枉过正。