本文整理汇总了Java中java.lang.reflect.InvocationHandler.invoke方法的典型用法代码示例。如果您正苦于以下问题:Java InvocationHandler.invoke方法的具体用法?Java InvocationHandler.invoke怎么用?Java InvocationHandler.invoke使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.lang.reflect.InvocationHandler
的用法示例。
在下文中一共展示了InvocationHandler.invoke方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: invoke
import java.lang.reflect.InvocationHandler; //导入方法依赖的package包/类
public Object invoke( Object proxy, Method method, Object[] args )
throws Throwable
{
// Note that the declaring class in method is the interface
// in which the method was defined, not the proxy class.
Class cls = method.getDeclaringClass() ;
InvocationHandler handler =
(InvocationHandler)classToInvocationHandler.get( cls ) ;
if (handler == null) {
if (defaultHandler != null)
handler = defaultHandler ;
else {
ORBUtilSystemException wrapper = ORBUtilSystemException.get(
CORBALogDomains.UTIL ) ;
throw wrapper.noInvocationHandler( "\"" + method.toString() +
"\"" ) ;
}
}
// handler should never be null here.
return handler.invoke( proxy, method, args ) ;
}
示例2: wrap
import java.lang.reflect.InvocationHandler; //导入方法依赖的package包/类
private static Object wrap(Class<?> clazz, ConnectionHandle c, Object h, List<InvocationHandler> subHandlers) {
if (h == null) {
return null;
}
InvocationHandler ih = (proxy, method, args) -> {
try {
for (InvocationHandler sih : subHandlers) {
Object o = sih.invoke(proxy, method, args);
if (o != UNHANLED) {
return o;
}
}
Object result = method.invoke(h, args);
if (CLASSES_TO_WRAP.contains(method.getReturnType())) {
result = wrap(method.getReturnType(), c, result,
Arrays.asList(wrapperIh(result), statementIh(c, result), getConnectionIh(c)));
}
return result;
} catch (InvocationTargetException e) {
Throwable t = e.getCause();
if (t instanceof Exception) {
c.connectionError((Exception) t);
}
throw e;
}
};
return Proxy.newProxyInstance(h.getClass().getClassLoader(), new Class[] { clazz }, ih);
}