Hello 求助 ,关于return的用法
java吧
全部回复
仅看楼主
level 11
KevinYu183 楼主
我现在有一个方法 doAction
方法里面还有很多其他方法
{
doActionA();
doActionB();
...
doActionZ();
}
每个方法都会返回1或0,返回0时,要求代码继续向下执行,返回1时 return跳出doAction
请问除了对每个doActionA..Z都做一次if判定以外,有没有更简洁的写法呢,我用的是Java8
2022年01月13日 08点01分 1
level 7
函数式接口一直调用就行
2022年01月13日 08点01分 2
可以举个例子吗
2022年01月13日 09点01分
可以举个例子吗
2022年01月13日 09点01分
level 1
Java不允许函数内部定义函数吧
2022年01月13日 09点01分 3
level 12
内部的方法抛异常不行吗?为什么要return1,你不做ifelse判断return0或1就没什么区别。
2022年01月13日 09点01分 4
level 12
而且你这个return就没意义的,直接void, 不满足条件抛异常就好了呀。真要做项目哪会这样子return0或1呀。
2022年01月13日 09点01分 5
level 1
不知道自定义异常行不行[小乖]
2022年01月13日 10点01分 6
level 10
练手的话可以搞个责任链模式[吐舌]
2022年01月13日 10点01分 7
level 9
public static void doAction() {
Optional.ofNullable(new Object())
.filter(a -> return0() == 0)
.filter(a -> return1() == 0)
.filter(a -> return2() == 0)
.filter(a -> return3() == 0);
}
2022年01月13日 11点01分 8
level 9
如果 doActionABC没有入参,还可以这样写
public static void doAction() {
doAction(Main::return0, Main::return1, Main::return2, Main::return3);
}
public static void doAction(Supplier<Integer>... functions) {
for (int i = 0; i < functions.length; ++i) {
if (functions[i].get() != 0) {
return;
}
}
}
public static int return0() {
System.out.println("do 0");
return 0;
}
....
2022年01月13日 11点01分 9
1