具有<if>语句的Mono <Boolean>

问题描述

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;
});

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...