java 有办法改变方法参数列表intellij吗?

pxyaymoc  于 2023-03-16  发布在  Java
关注(0)|答案(5)|浏览(111)

为了概括,我们举一个这样的例子.
我有一个类似这样的方法。

public void mymethod(int param1, String param2){
    //do something
}

我想把它变成这样。

public void mymethod(int param1, String param2, String param3){
    //do something
}

有没有一种更好的方法可以在不破坏用法的情况下使用intellij来实现这一点?

pgky5nke

pgky5nke1#

您可以使用intellij执行以下操作。
使用Refactor-〉Change Signature菜单,您可以:

  • 更改方法名称、返回类型和可见性范围。
  • 添加新参数并移除现有参数。请注意,您也可以使用专用的提取参数重构来添加参数。
  • 重新排序参数。
  • 更改参数名称和类型。
  • 添加和删除例外。
  • 通过方法调用层次结构传播新参数和异常。

转到Refactor-〉Change Signature菜单
在编辑器中,将光标放在要更改其签名的方法的名称内。执行以下操作之一:

  • 按Ctrl+F6组合键。
  • 选择重构|更改主菜单中的签名。
  • 选择重构|从关联菜单(右键单击)中更改签名。

有关更多信息,请查看here

0qx6xfy6

0qx6xfy62#

您可以右键单击方法名称,然后refactor-〉change signature(或命令+ F6,如果您在Mac上,Ctrl + F6在Windows,Linux上)。
应该会打开一个新窗口,您可以在其中添加和删除新参数,以及更改方法的可见性。

a1o7rhls

a1o7rhls3#

从干净代码的Angular 来看,答案很简单:别这么做-你的方法参数越少越好!

添加第三个参数对我来说就像走了一条非常错误的路线。

也许您最喜欢的想法是将所有客户端代码更改为使用null或某个空字符串作为新参数......但同样:“闻起来”也很难闻。
你看:你的代码一方面应该冗长,但尽可能“简洁”。方法中的每个参数都存在,因为你的代码需要它们。2所以,如果你要添加第三个参数,那可能大多数时候都是空的;只有在你想让它“表示”某个东西的地方,它才是非空的,好吧,我的两点意见是:别这样:很明显,two-arg+null方法要做的事情和three-arg方法不同。如果是这样的话,保持两个独立的方法。
请记住:你添加到方法中的每个参数都会给你的测试范围增加更多的变化。2你真的不希望那样。3你的方法应该尽可能的简单,这样它们才能尽可能的容易被测试。

fafcakar

fafcakar4#

只是为了补充一些遗漏的地方。

  • 添加参数、更改参数类型、更改方法的返回类型在IDE中的自动化程度不高。

原因是IDE无法猜测和创建或替换已更改参数或方法用法的赋值。

  • 添加/修改异常也几乎是半自动的,因为IDE不知道try/catch或通过方法用法传递异常,您必须手动检查每个异常,并在每个地方做您想做的事情。
pnwntuvh

pnwntuvh5#

您可以右键单击方法名,然后执行重构-〉更改签名(Windows中为Ctrl + F6)。

相关问题