public class CheckedUtil extends Object
该工具通过函数式的方式将那些需要抛出受检查异常的表达式或者代码段转化成一个 cn.hutool.core.lang.func.Func* 对象
<pre>
//代码中如果遇到一个方法调用声明了受检查异常那么我们的代码就必须这样写
Map<String, String> describedObject = null;
try {
describe = BeanUtils.describe(new Object());
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
} catch (InvocationTargetException e) {
throw new RuntimeException(e);
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
// use describedObject ...
//上面的代码增加了异常块使得代码不那么流畅,现在可以这样写:
Map<String, String> describedObject = CheckedUtil.uncheck(BeanUtils::describe).call(new Object());
// use describedObject ...
CheckedUtil.uncheck 方法接受任意可以转化成 cn.hutool.core.lang.func.Func* 函数式接口的 Lambda 表达式。返回对应的函数式对象。
上述代码可以理解为:
Func0<Object, Map<String, String>> aFunc = CheckedUtil.uncheck(BeanUtils::describe);
Map<String, String> describedObject = aFunc.call(传入参数);
该aFunc对象代表的就是BeanUtils::describe这个表达式,且在内部转化了检查类型异常,不需要代码里面显示处理。
</pre>
Modifier and Type | Class and Description |
---|---|
static interface |
CheckedUtil.Func0Rt<R> |
static interface |
CheckedUtil.Func1Rt<P,R> |
static interface |
CheckedUtil.FuncRt<P,R> |
static interface |
CheckedUtil.VoidFunc0Rt |
static interface |
CheckedUtil.VoidFunc1Rt<P> |
static interface |
CheckedUtil.VoidFuncRt<P> |
Constructor and Description |
---|
CheckedUtil() |
Modifier and Type | Method and Description |
---|---|
static <P,R> CheckedUtil.FuncRt<P,R> |
uncheck(Func<P,R> expression)
接收一个可以转化成 cn.hutool.core.lang.func.Func 的Lambda表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static <P,R> CheckedUtil.FuncRt<P,R> |
uncheck(Func<P,R> expression,
Supplier1<RuntimeException,Exception> rteSupplier)
接收一个可以转化成 cn.hutool.core.lang.func.Func的Lambda表达式,和一个可以把Exception转化成RuntimeExceptionde的表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static <R> CheckedUtil.Func0Rt<R> |
uncheck(Func0<R> expression)
接收一个可以转化成 cn.hutool.core.lang.func.Func0 的Lambda表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static <R> CheckedUtil.Func0Rt<R> |
uncheck(Func0<R> expression,
Supplier1<RuntimeException,Exception> rteSupplier)
接收一个可以转化成 cn.hutool.core.lang.func.Func0的Lambda表达式,和一个可以把Exception转化成RuntimeExceptionde的表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static <P,R> CheckedUtil.Func1Rt<P,R> |
uncheck(Func1<P,R> expression)
接收一个可以转化成 cn.hutool.core.lang.func.Func1 的Lambda表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static <P,R> CheckedUtil.Func1Rt<P,R> |
uncheck(Func1<P,R> expression,
Supplier1<RuntimeException,Exception> rteSupplier)
接收一个可以转化成 cn.hutool.core.lang.func.Func1的Lambda表达式,和一个可以把Exception转化成RuntimeExceptionde的表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static <P> CheckedUtil.VoidFuncRt<P> |
uncheck(VoidFunc<P> expression)
接收一个可以转化成 cn.hutool.core.lang.func.VoidFunc 的Lambda表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static <P> CheckedUtil.VoidFuncRt<P> |
uncheck(VoidFunc<P> expression,
Supplier1<RuntimeException,Exception> rteSupplier)
接收一个可以转化成 cn.hutool.core.lang.func.VoidFunc的Lambda表达式,和一个可以把Exception转化成RuntimeExceptionde的表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static CheckedUtil.VoidFunc0Rt |
uncheck(VoidFunc0 expression)
接收一个可以转化成 cn.hutool.core.lang.func.VoidFunc0 的Lambda表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static CheckedUtil.VoidFunc0Rt |
uncheck(VoidFunc0 expression,
RuntimeException rte)
接收一个可以转化成 cn.hutool.core.lang.func.VoidFunc0的Lambda表达式,和一个RuntimeException,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static CheckedUtil.VoidFunc0Rt |
uncheck(VoidFunc0 expression,
Supplier1<RuntimeException,Exception> rteSupplier)
接收一个可以转化成 cn.hutool.core.lang.func.VoidFunc0的Lambda表达式,和一个可以把Exception转化成RuntimeExceptionde的表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static <P> CheckedUtil.VoidFunc1Rt<P> |
uncheck(VoidFunc1<P> expression)
接收一个可以转化成 cn.hutool.core.lang.func.VoidFunc1 的Lambda表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static <P> CheckedUtil.VoidFunc1Rt<P> |
uncheck(VoidFunc1<P> expression,
Supplier1<RuntimeException,Exception> rteSupplier)
接收一个可以转化成 cn.hutool.core.lang.func.VoidFunc1的Lambda表达式,和一个RuntimeException,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
public static <P,R> CheckedUtil.FuncRt<P,R> uncheck(Func<P,R> expression)
P
- 运行时传入的参数类型R
- 最终返回的数据类型expression
- Lambda表达式CheckedUtil.FuncRt
public static <R> CheckedUtil.Func0Rt<R> uncheck(Func0<R> expression)
R
- 最终返回的数据类型expression
- 运行时传入的参数类型CheckedUtil.Func0Rt
public static <P,R> CheckedUtil.Func1Rt<P,R> uncheck(Func1<P,R> expression)
P
- 运行时传入的参数类型R
- 最终返回的数据类型expression
- 运行时传入的参数类型CheckedUtil.Func1Rt
public static <P> CheckedUtil.VoidFuncRt<P> uncheck(VoidFunc<P> expression)
P
- 运行时传入的参数类型expression
- 运行时传入的参数类型CheckedUtil.VoidFuncRt
public static CheckedUtil.VoidFunc0Rt uncheck(VoidFunc0 expression)
expression
- 运行时传入的参数类型CheckedUtil.VoidFunc0Rt
public static <P> CheckedUtil.VoidFunc1Rt<P> uncheck(VoidFunc1<P> expression)
P
- 运行时传入的参数类型expression
- 运行时传入的参数类型CheckedUtil.VoidFunc1Rt
public static <P,R> CheckedUtil.FuncRt<P,R> uncheck(Func<P,R> expression, Supplier1<RuntimeException,Exception> rteSupplier)
P
- 运行时传入的参数类型R
- 最终返回的数据类型expression
- Lambda表达式rteSupplier
- 转化运行时异常的表达式CheckedUtil.FuncRt
public static <R> CheckedUtil.Func0Rt<R> uncheck(Func0<R> expression, Supplier1<RuntimeException,Exception> rteSupplier)
R
- 最终返回的数据类型expression
- Lambda表达式rteSupplier
- 转化运行时异常的表达式CheckedUtil.Func0Rt
public static <P,R> CheckedUtil.Func1Rt<P,R> uncheck(Func1<P,R> expression, Supplier1<RuntimeException,Exception> rteSupplier)
P
- 运行时传入的参数类型R
- 最终返回的数据类型expression
- Lambda表达式rteSupplier
- 转化运行时异常的表达式CheckedUtil.Func1Rt
public static <P> CheckedUtil.VoidFuncRt<P> uncheck(VoidFunc<P> expression, Supplier1<RuntimeException,Exception> rteSupplier)
P
- 运行时传入的参数类型expression
- Lambda表达式rteSupplier
- 转化运行时异常的表达式CheckedUtil.VoidFuncRt
public static CheckedUtil.VoidFunc0Rt uncheck(VoidFunc0 expression, RuntimeException rte)
expression
- Lambda表达式rte
- 期望抛出的运行时异常CheckedUtil.VoidFunc0Rt
public static CheckedUtil.VoidFunc0Rt uncheck(VoidFunc0 expression, Supplier1<RuntimeException,Exception> rteSupplier)
expression
- Lambda表达式rteSupplier
- 转化运行时异常的表达式CheckedUtil.VoidFunc0Rt
public static <P> CheckedUtil.VoidFunc1Rt<P> uncheck(VoidFunc1<P> expression, Supplier1<RuntimeException,Exception> rteSupplier)
P
- 运行时传入的参数类型expression
- Lambda表达式rteSupplier
- 转化运行时异常的表达式CheckedUtil.VoidFunc1Rt
Copyright © 2024. All rights reserved.