java方法return能有_Java的一个方法中经常用到了多个return这样好吗?

记得在那里看过说一个函数最好只有一个return语句

有什么不好的。有时用多个return方便很多,干嘛不用。

当然不好,多个return会使返回结果难以预期,你能保证return前的代码没有bug?

不光是java吧,所有的语言都一样,代码在运行到return时就会跳出。

如果函数中有多个判断分支,建议先将返回值存放在变量中,在最后return。

我到是比较纠结return只是用于中断函数执行时到底怎么写?

第一种:

doSomething();

return;

第二种:

return doSomething();

这里return只是为了函数不再往下执行,并不在乎return什么内容。

我用第一种方式,但第二种方式写起来顺手。我的担忧是,第二种方式是否会占用内存,是否给后来维护代码的人带来困惑?

无所谓好不好,如果你不想用多处,那就用 do while false 好了。如下:

Object ret;

L0: do {

...

if (某条件) {

ret = xxx;

break L0;

}

...

ret = YYY;

}

while (false);

return ret;

用的好可以把很深的 if else 代码拉平,逻辑变得清晰。如 这段代码 ,当然了这是我个人的习惯写法,好不好另说了,只是举例用一个 return 的一种方式。

不过一般我推荐我的小组成员尽可能块的结束掉函数体,优先处理错误、简单逻辑,尽可能快速的 return,throw,让代码层级平一些,逻辑清楚些。当然了,得根据实际情况来判断用是不是真的适合这种方式,也有时候不是这样。

return是为了让函数跳出,或者在特定的地方返回特定的值,使用很普遍啊。不需要这么教条吧?

举个例子:

有个String method(int id, String name){};

这里是个查询控制跳转视图的method.条件有以下几个点

id>0跳转到A视图

id>0后判断,如果name=b跳转到B视图

默认跳转到C视图

那么一般情况下代码会这么写:

String redirect = "/view/c";

if(id > 0){

redirect = "/view/a"

if(Utils.isNotEmpty(name) && name.equals('b')){

redirect = "/view/b";

}

}

return redirect;

以上面代码为栗子,可以改成这样

if(id > 0){

if(Utils.isNotEmpty(name) && name.equals('b')){

return "/view/b";

}

return "/view/a";

}

return "/view/c";

这样的话,减少了变量,变量是很容易出各种各样的问题的,最大的问题是容易把值弄丢。

以上就是我的看法。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值