【发布时间】:2019-09-17 14:22:16
【问题描述】:
我正在向这个构造函数添加第三个参数(String?memberId),有谁知道 IntelliJ 如何或为什么不给我自动插入这个新的构造函数参数的选项?它可以做的最好的事情是更改下一个参数的类型,或者创建第二个构造函数,我认为这对 IntelliJ 来说应该是显而易见的,这些可能没有用。
【问题讨论】:
-
我对 IntelliJ 不够熟悉,无法说出它是否可能(因此是评论,而不是答案)。但是您问为什么它不给您选择,我猜这是因为实现该功能的复杂性。假设您有
MyConstructor(int i1, int i2),并且您提供了 3 个int值,IntelliJ 将如何知道您希望新参数去哪里。它是在i1之前、i1和i2之间还是在i2之后插入它? -
另一个潜在问题是如果是将参数添加到构造函数中,人们可能会假设代码中调用该构造函数的任何其他位置将被更新以包含新参数也是。但是,IntelliJ 不知道将什么值放入重构的构造函数调用中。不过,正如前面评论中提到的,我不知道这是否真的可能——如果是这样,这些 cmets 将无关紧要!
-
我相信 IntelliJ 足够聪明,因为按 ctrl+f6 会弹出一个对话框以同样的方式更改签名,它会逐步让您选择新参数的默认值。但是,它会将该值分配给每个实例,而实际上它应该让您一次一步地遍历它们。也许这个功能不存在,但我很惊讶
标签: android-studio intellij-idea kotlin