使用提取方法快捷方式时Java IDE生成返回类型为void的方法的原因

时间:2018-10-24 16:49:43

标签: java eclipse intellij-idea ide

最近,我正在阅读一个Java类,该人员已通过IDE快捷方式(提取方法快捷方式)创建了方法。所有方法的返回类型均为void,并且将本应为返回类型的内容作为该方法的输入参数传递。以下是我所指的示例。

setmetatable ( _G, { __index = function ( t, k ) return k end } )

print ( foo )    --  prints the string "foo"
foo  =  5
print ( foo )    --  prints 5
print ( bar )    --  prints the string "bar"

我想知道上面是否是做事的好方法。我个人不喜欢上述创建方法的方式。我认为方法应该像下面这样。

public void multiply(Integer first, Integer second, Integer result){
   result = first * second;
}

但是在IntelliJ / Eclipse中,当我们提取方法时,大多会创建上述方法。

有人可以让我知道为什么当我们使用extract方法快捷方式时,IDE通常会创建void方法吗,并且方法定义的第一种样式完全是一种好习惯吗?

1 个答案:

答案 0 :(得分:0)

如果未将要调用的方法分配给变量,则Eclipse无法知道返回值应该是什么。

大概,原始代码看起来像这样:

 public static void main(String args[]){
   Integer result = 0;
   multiply(1,3,result);
 }

Eclipse无法判断multiply应该返回什么,因此它默认为void。如果要推断返回值,请将其分配给变量,如下所示:

 public static void main(String args[]){
   Integer result = 0;
   result = multiply(1,3,result);
 }