类 RetOps<T>
java.lang.Object
com.sie.mbm.mom.framework.common.util.RetOps<T>
简化
R<T> 的访问操作,例子 Rresult = R.ok(0); // 使用场景1: 链式操作: 断言然后消费 RetOps.of(result) .assertCode(-1,r -> new RuntimeException("error "+r.getCode())) .assertDataNotEmpty(r -> new IllegalStateException("oops!")) .useData(System.out::println); // 使用场景2: 读取原始值(data),这里返回的是Optional RetOps.of(result).getData().orElse(null); // 使用场景3: 类型转换 R s = RetOps.of(result) .assertDataNotNull(r -> new IllegalStateException("nani??")) .map(i -> Integer.toHexString(i)) .peek();
-
字段概要
字段修饰符和类型字段说明状态码为成功状态码为成功并且有值数据有值数据有值,并且包含元素 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明assertCode(int expect, Function<? super R<T>, ? extends Ex> func) 断言code的值assertDataNotEmpty(Function<? super R<T>, ? extends Ex> func) 断言业务数据有值,并且包含元素assertDataNotNull(Function<? super R<T>, ? extends Ex> func) 断言业务数据有值assertSuccess(Function<? super R<T>, ? extends Ex> func) 断言成功booleancodeEquals(int value) 对code的值进行相等性测试booleancodeNotEquals(int value) 对code的值进行相等性测试intgetCode()读取code的值getData()读取data的值有条件地读取data的值getMsg()读取msg的值boolean是否成功<U> RetOps<U> 对业务数据(data)转换<U> RetOps<U> 对业务数据(data)转换boolean是否失败static <T> RetOps<T> peek()观察原始值void消费数据,注意此方法保证数据可用void条件消费voiduseDataIfSuccess(Consumer<? super T> consumer) 条件消费(错误代码表示成功)voiduseDataOnCode(Consumer<? super T> consumer, int... codes) 条件消费(错误代码匹配某个值)
-
字段详细资料
-
CODE_SUCCESS
状态码为成功 -
HAS_DATA
数据有值 -
HAS_ELEMENT
数据有值,并且包含元素 -
DATA_AVAILABLE
状态码为成功并且有值 -
original
-
-
构造器详细资料
-
RetOps
-
-
方法详细资料
-
of
-
peek
观察原始值- 返回:
- R
-
getCode
public int getCode()读取code的值- 返回:
- 返回code的值
-
getData
读取data的值- 返回:
- 返回 Optional 包装的data
-
getDataIf
有条件地读取data的值- 参数:
predicate- 断言函数- 返回:
- 返回 Optional 包装的data,如果断言失败返回empty
-
getMsg
读取msg的值- 返回:
- 返回Optional包装的 msg
-
codeEquals
public boolean codeEquals(int value) 对code的值进行相等性测试- 参数:
value- 基准值- 返回:
- 返回ture表示相等
-
codeNotEquals
public boolean codeNotEquals(int value) 对code的值进行相等性测试- 参数:
value- 基准值- 返回:
- 返回ture表示不相等
-
isSuccess
public boolean isSuccess()是否成功- 返回:
- 返回ture表示成功
- 另请参阅:
-
notSuccess
public boolean notSuccess()是否失败- 返回:
- 返回ture表示失败
-
assertCode
public <Ex extends Exception> RetOps<T> assertCode(int expect, Function<? super R<T>, ? extends Ex> func) throws Ex断言code的值- 类型参数:
Ex- 异常类型- 参数:
expect- 预期的值func- 用户函数,负责创建异常对象- 返回:
- 返回实例,以便于继续进行链式操作
- 抛出:
Ex- 断言失败时抛出
-
assertSuccess
public <Ex extends Exception> RetOps<T> assertSuccess(Function<? super R<T>, ? extends Ex> func) throws Ex断言成功- 类型参数:
Ex- 异常类型- 参数:
func- 用户函数,负责创建异常对象- 返回:
- 返回实例,以便于继续进行链式操作
- 抛出:
Ex- 断言失败时抛出
-
assertDataNotNull
public <Ex extends Exception> RetOps<T> assertDataNotNull(Function<? super R<T>, ? extends Ex> func) throws Ex断言业务数据有值- 类型参数:
Ex- 异常类型- 参数:
func- 用户函数,负责创建异常对象- 返回:
- 返回实例,以便于继续进行链式操作
- 抛出:
Ex- 断言失败时抛出
-
assertDataNotEmpty
public <Ex extends Exception> RetOps<T> assertDataNotEmpty(Function<? super R<T>, ? extends Ex> func) throws Ex断言业务数据有值,并且包含元素- 类型参数:
Ex- 异常类型- 参数:
func- 用户函数,负责创建异常对象- 返回:
- 返回实例,以便于继续进行链式操作
- 抛出:
Ex- 断言失败时抛出
-
map
对业务数据(data)转换- 类型参数:
U- 数据类型- 参数:
mapper- 业务数据转换函数- 返回:
- 返回新实例,以便于继续进行链式操作
-
mapIf
public <U> RetOps<U> mapIf(Predicate<? super R<T>> predicate, Function<? super T, ? extends U> mapper) 对业务数据(data)转换- 类型参数:
U- 数据类型- 参数:
predicate- 断言函数mapper- 业务数据转换函数- 返回:
- 返回新实例,以便于继续进行链式操作
- 另请参阅:
-
useData
消费数据,注意此方法保证数据可用- 参数:
consumer- 消费函数
-
useDataOnCode
条件消费(错误代码匹配某个值)- 参数:
consumer- 消费函数codes- 错误代码集合,匹配任意一个则调用消费函数
-
useDataIfSuccess
条件消费(错误代码表示成功)- 参数:
consumer- 消费函数
-
useDataIf
条件消费- 参数:
predicate- 断言函数consumer- 消费函数,断言函数返回true时被调用- 另请参阅:
-