为了概括,让我们举个这样的例子。
我有一个像这样的方法。
public void mymethod(int param1, String param2){
//do something
}
我想把它改成这样的东西。
public void mymethod(int param1, String param2, String param3){
//do something
}
有没有一种首选方法可以在不破坏用途的情况下使用intellij进行此操作?
答案 0 :(得分:8)
您可以使用intellij执行以下操作。
使用Refactor
- > Change Signature
菜单,您可以:
转到Refactor
- > Change Signature
菜单
在编辑器中,将光标放在要更改其签名的方法的名称中。 执行以下操作之一:
有关详情,请查看here
答案 1 :(得分:1)
从干净的代码角度来看,答案很简单:不要这样做 - 你的方法越少越好!
添加第三个参数看起来像是走错路线给我。
可能你最喜欢的想法可以改变你所有的客户端代码,使用null或一些空字符串作为新参数...但是再次:那个“闻起来”太糟糕了我。
你看:你的代码一方面应该是冗长的,但要尽可能“简洁”。含义:您的方法的每个和任何参数确实存在,因为您的代码需要它们。所以,如果你要添加第三个参数,那么大部分时间都是null;并且只有在那些你想要它“意味着”某些东西的地方它是非空的,好吧,我的两分:不要这样做:显然,两个arg + null方法将做的不是三个-arg方法。如果是这样 - 保持两种不同的方法。
请记住:您添加到方法中的每个参数都会为您的测试范围增加更多变化。你真的不想那样。您的方法应尽可能简单,以便尽可能轻松地进行测试。
答案 2 :(得分:1)
您可以右键单击方法名称,然后refactor
- > change signature
(或命令 + F6 ,如果你在Mac上, Ctrl + F6 在Windows中,Linux)。
应打开一个新窗口,您可以在其中添加和删除新参数,以及更改方法的可见性。
答案 3 :(得分:1)
只是在这里添加一些遗漏点。
原因是IDE无法猜测并创建或替换已更改参数或方法用法的分配。