level 11
我现在有一个方法 doAction
方法里面还有很多其他方法
{
doActionA();
doActionB();
...
doActionZ();
}
每个方法都会返回1或0,返回0时,要求代码继续向下执行,返回1时 return跳出doAction
请问除了对每个doActionA..Z都做一次if判定以外,有没有更简洁的写法呢,我用的是Java8
2022年01月13日 08点01分
1
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 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