有没有办法改变方法参数列表intellij?
为了一般化,我们举一个这样的例子。有没有办法改变方法参数列表intellij?
我有一个这样的方法。
public void mymethod(int param1, String param2){
//do something
}
我想将它改成这样的东西。
public void mymethod(int param1, String param2, String param3){
//do something
}
有没有一个首选的方法来做到这一点与intellij没有打破用法?
你可以用intellij做以下事情。
随着Refactor
- >Change Signature
菜单中,您可以:
- 更改方法的名称,返回类型和可见性范围。
- 添加新参数并删除现有参数。请注意,您也可以使用专用的Extract Parameter重构来添加参数。
- 重新排序参数。
- 更改参数名称和类型。
- 添加和删除异常。
- 通过方法调用层次传播新的参数和异常。
要转到Refactor
- >Change Signature
菜单
在编辑器中,将光标移到要更改其签名的方法的名称中。 执行下列操作之一:
- 按下Ctrl键+ F6 。
- 选择重构|在主菜单中更改签名。
- 选择重构|从上下文菜单中更改签名(右键单击)。
如需更多信息,请看看here
从干净的代码角度来看,答案很简单:不要这样做 - 您的方法的参数越少越好!
添加第三个参数看起来像是给我一个非常错误的路线。
也许你最喜欢的想法可以改变你的所有客户端代码使用null或一些空字符串用于新的参数......但是又一次:那个“味道”也不好。
您会发现:您的代码一方面应该是冗长的,但尽可能“简洁”。含义:因为您的代码需要它们,所以方法中的每个参数都存在。所以,如果你要添加第三个参数,那可能大部分时间都是空的;只有在你希望它“意味着”它非空的地方,那么,我的两分:不要那样做:显而易见,两个arg + null方法将会比三个方法做别的事情-arg方法。如果是这样 - 保留两种单独的方法。
请记住:您添加到方法中的每个参数为您的测试范围添加了更多的变体。你真的不想那样。你的方法应该尽可能简单,以便尽可能简单地进行测试。
您可以右键单击方法的名称,然后refactor
- >change signature
(或命令 + F6,如果你是在Mac上,按Ctrl + F6 在的Windows,Linux)。
应打开一个新窗口,您可以在其中添加和删除新参数,以及更改方法的可见性。
只是为了在这里添加一些失分。
- 添加参数,更改参数类型,更改方法的返回类型对于IDE来说不会自动化很多。
原因是IDE无法猜测并创建或替换已更改参数或方法用法的分配。
- 添加/更改异常也几乎是半自动的,因为IDE不知道try/catch还是传递异常与方法的用法。您必须手动完成每项任务,并在每个地方做您想做的事。
我问这个问题,只是为了知道是否有任何IDE的快捷方式。不在oop视角。你可以看到我采取了一个虚拟的例子。 :) –
@AdInfinitum没有问题的:),有些事情要从他的答案中提取。而且我也没有投票。 –
@Jagermeister同时,如果您使用的是像Guice这样的现代DI框架,您可能已经注意到可能会发生这种情况。并同意你在oop视角下这是一个不好的主意。 –