public final class InvokeProxy extends Object implements AppListenerAdapter
对 try-catch 的异常处理方式进行了包装,当需要调用会抛出异常的方式时,例如:
public File getFile(String filename) throws NoSuchFileException {
// some code ...
}
调用时 InvokeProxy.fun(fileUtils::getFile).call("filename") , 这样完成调用。
这里 fun() 的参数是要调用方法,call() 的参数是要调用的方法的实际参数。
当方法抛出异常时,call() 调用返回 null,这里提供一些便捷的操作:
- 添加异常处理器:InvokeProxy.MethodCallWrapper.addHandle(Class, Consumer)
- 调用方法时抛出异常时指定默认值:InvokeProxy.MethodCallWrapper.setElse(Supplier)
- 使方法返回的结果用Optional包装返回:InvokeProxy.MethodCallWrapper.getOptional(Object...)
| 限定符和类型 | 类和说明 |
|---|---|
protected static interface |
InvokeProxy.CommonMethod<T> |
static class |
InvokeProxy.MethodCallWrapper<T> |
| 构造器和说明 |
|---|
InvokeProxy() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
config(AppListenerProperty interested) |
static InvokeProxy.MethodCallWrapper<xyz.scootaloo.console.app.util.InvokeProxy.Non> |
fun(FunctionDescribe.NonRtn0P nonRtn0P) |
static <T> InvokeProxy.MethodCallWrapper<xyz.scootaloo.console.app.util.InvokeProxy.Non> |
fun(FunctionDescribe.NonRtn1P<T> nonRtn1P) |
static <T1,T2> InvokeProxy.MethodCallWrapper<xyz.scootaloo.console.app.util.InvokeProxy.Non> |
fun(FunctionDescribe.NonRtn2P<T1,T2> nonRtn2P) |
static <T1,T2,T3> InvokeProxy.MethodCallWrapper<xyz.scootaloo.console.app.util.InvokeProxy.Non> |
fun(FunctionDescribe.NonRtn3P<T1,T2,T3> nonRtn3P) |
static <T1,T2,T3,T4> |
fun(FunctionDescribe.NonRtn4P<T1,T2,T3,T4> nonRtn4P) |
static <R> InvokeProxy.MethodCallWrapper<R> |
fun(FunctionDescribe.Rtn0P<R> rtn0P) |
static <R,T> InvokeProxy.MethodCallWrapper<R> |
fun(FunctionDescribe.Rtn1P<R,T> rtn1P) |
static <R,T1,T2> InvokeProxy.MethodCallWrapper<R> |
fun(FunctionDescribe.Rtn2P<R,T1,T2> rtn2P) |
static <R,T1,T2,T3> |
fun(FunctionDescribe.Rtn3P<R,T1,T2,T3> rtn3P) |
static <R,T1,T2,T3,T4> |
fun(FunctionDescribe.Rtn4P<R,T1,T2,T3,T4> rtn4P) |
protected static InvokeProxy |
getInstance() |
String |
getName() |
String |
info() |
void |
onAppStarted(ConsoleConfig config) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitenable, onInput, onInputResolved, onMessage, onResolveInputpublic static <R> InvokeProxy.MethodCallWrapper<R> fun(FunctionDescribe.Rtn0P<R> rtn0P)
public static <R,T> InvokeProxy.MethodCallWrapper<R> fun(FunctionDescribe.Rtn1P<R,T> rtn1P)
public static <R,T1,T2> InvokeProxy.MethodCallWrapper<R> fun(FunctionDescribe.Rtn2P<R,T1,T2> rtn2P)
public static <R,T1,T2,T3> InvokeProxy.MethodCallWrapper<R> fun(FunctionDescribe.Rtn3P<R,T1,T2,T3> rtn3P)
public static <R,T1,T2,T3,T4> InvokeProxy.MethodCallWrapper<R> fun(FunctionDescribe.Rtn4P<R,T1,T2,T3,T4> rtn4P)
public static InvokeProxy.MethodCallWrapper<xyz.scootaloo.console.app.util.InvokeProxy.Non> fun(FunctionDescribe.NonRtn0P nonRtn0P)
public static <T> InvokeProxy.MethodCallWrapper<xyz.scootaloo.console.app.util.InvokeProxy.Non> fun(FunctionDescribe.NonRtn1P<T> nonRtn1P)
public static <T1,T2> InvokeProxy.MethodCallWrapper<xyz.scootaloo.console.app.util.InvokeProxy.Non> fun(FunctionDescribe.NonRtn2P<T1,T2> nonRtn2P)
public static <T1,T2,T3> InvokeProxy.MethodCallWrapper<xyz.scootaloo.console.app.util.InvokeProxy.Non> fun(FunctionDescribe.NonRtn3P<T1,T2,T3> nonRtn3P)
public static <T1,T2,T3,T4> InvokeProxy.MethodCallWrapper<xyz.scootaloo.console.app.util.InvokeProxy.Non> fun(FunctionDescribe.NonRtn4P<T1,T2,T3,T4> nonRtn4P)
protected static InvokeProxy getInstance()
public String getName()
getName 在接口中 AppListenerpublic void config(AppListenerProperty interested)
config 在接口中 AppListenerinterested - 编辑当前监听器感兴趣的事件,以及可以指定优先级public void onAppStarted(ConsoleConfig config)
onAppStarted 在接口中 AppListeneronAppStarted 在接口中 AppListenerAdapterconfig - 系统装配完命令,已获取配置类,监听此事件可以获取这个配置类public String info()
info 在接口中 AppListenerCopyright © 2021. All rights reserved.