当从方法返回值时,首先将该值赋给变量并直接返回该变量优于返回值?

时间:2016-05-04 05:08:19

标签: java

当我们从方法返回值时,在以下示例中,将返回值分配给变量优先于返回值而不分配给任何变量?

public int getCustomerId(){
return CustomerService.getCustomerById();
}

和另一个例子:

 public int getCustomerId(){
int id = CustomerService.getCustomberById();
return id;
}

哪一个更好,为什么?我看到了我朋友的一个代码,他首先为变量赋值,然后将该变量返回给他的服务方法。

1 个答案:

答案 0 :(得分:0)

这两种方法都是正确的,它取决于我们在函数中编写的代码量或代码的可读性。

如果是 一两个班轮代码 ,我会选择 第一种方法

就这么简单,可读性很好。

public int getCustomerId(){
  return CustomerService.getCustomerById();
}

这使代码的可读性降低,因为只需要一个服务调用,我需要经历两个步骤。额外的调试。

public int getCustomerId(){
  int id = CustomerService.getCustomberById();
  return id;
}

如果我有一些 复杂的逻辑 ,可能在业务层, multiple if-else, try-catch 等,那么第二种方法看起来很好。

只是一个例子,它是有道理的

 f(){

    Object obj = null;

    try{
        if(condition){
           obj = // call service1
        }else {
          obj = // call service2
        }
    }catch(Exception e){
        }
        return obj;
}
  

我同意使用额外的变量(虽然是本地功能)   赋值,可能会给JVM增加很少的开销,但代码可读性   在编码时也应该考虑。 JVM再次足够聪明,可以优化您的代码,如上所示。

请参阅links这些内容more。不完全相关,但可以提供帮助。