问题描述
public void func() {
Mono<Boolean> monoBool = ...
if (!monoBool) {
throw new CustomException();
}
}
我有单声道。我如何在if语句中使用他?
解决方法
!运算符基本上适用于布尔表达式。
很明显,
boolean someBool = ...
if (!someBool)
有效。当变量的类型为 B oolean时,该方法同样有效,因为可以轻松将引用类型装箱为基本类型。
但是没有规则可以告诉java如何将某个泛型类(无论使用的是泛型类型)转换为布尔值。因此,!monoBol
不是有效的Java代码。
但是,在您的情况下,该Mono
实例可能会为您提供一个(或多个)布尔值。
换句话说:教育自己如何使用该课程,例如,请参见here。
,您可以使用Mono的导入java.util.function.Supplier
参数方法。
例如:
boolean flag = true;
Mono<Boolean> monoExample = Mono.fromSupplier(()->{
if(flag) {
throw new RuntimeException();
}
return flag;
});