private Class<?>[] getParameterTypes(Method method, Object[] args) { Class<?>[] types = method.getParameterTypes(); for (int x = 0; x < types.length; x++) { UnwrapParam p = getUnwrapParam(method.getParameterAnnotations()[x]); if (p != null) { String s = p.methodName(); String tn = p.typeMethodName(); try { Method m = args[x].getClass().getMethod(s); if ("#default".equals(tn)) { types[x] = m.getReturnType(); } else { Method m2 = args[x].getClass().getMethod(tn); types[x] = (Class<?>)ReflectionUtil.setAccessible(m2).invoke(args[x]); } args[x] = ReflectionUtil.setAccessible(m).invoke(args[x]); } catch (Exception ex) { throw new RuntimeException(ex); } } } return types; }
private Class<?>[] getParameterTypes(Method method, Object[] args) { Class<?>[] types = method.getParameterTypes(); final Annotation[][] parAnnotations = method.getParameterAnnotations(); for (int x = 0; x < types.length; x++) { UnwrapParam p = getUnwrapParam(parAnnotations[x]); if (p != null) { String s = p.methodName(); String tn = p.typeMethodName(); try { Method m = args[x].getClass().getMethod(s); if ("#default".equals(tn)) { types[x] = m.getReturnType(); } else { Method m2 = args[x].getClass().getMethod(tn); types[x] = (Class<?>)ReflectionUtil.setAccessible(m2).invoke(args[x]); } args[x] = ReflectionUtil.setAccessible(m).invoke(args[x]); } catch (Exception ex) { throw new RuntimeException(ex); } } } return types; }
private Class<?>[] getParameterTypes(Method method, Object[] args) { Class<?>[] types = method.getParameterTypes(); final Annotation[][] parAnnotations = method.getParameterAnnotations(); for (int x = 0; x < types.length; x++) { UnwrapParam p = getUnwrapParam(parAnnotations[x]); if (p != null) { String s = p.methodName(); String tn = p.typeMethodName(); try { Method m = args[x].getClass().getMethod(s); if ("#default".equals(tn)) { types[x] = m.getReturnType(); } else { Method m2 = args[x].getClass().getMethod(tn); types[x] = (Class<?>)ReflectionUtil.setAccessible(m2).invoke(args[x]); } args[x] = ReflectionUtil.setAccessible(m).invoke(args[x]); } catch (Exception ex) { throw new RuntimeException(ex); } } } return types; }
private Class<?>[] getParameterTypes(Method method, Object[] args) { Class<?>[] types = method.getParameterTypes(); final Annotation[][] parAnnotations = method.getParameterAnnotations(); for (int x = 0; x < types.length; x++) { UnwrapParam p = getUnwrapParam(parAnnotations[x]); if (p != null) { String s = p.methodName(); String tn = p.typeMethodName(); try { Method m = args[x].getClass().getMethod(s); if ("#default".equals(tn)) { types[x] = m.getReturnType(); } else { Method m2 = args[x].getClass().getMethod(tn); types[x] = (Class<?>)ReflectionUtil.setAccessible(m2).invoke(args[x]); } args[x] = ReflectionUtil.setAccessible(m).invoke(args[x]); } catch (Exception ex) { throw new RuntimeException(ex); } } } return types; }
private Class<?>[] getParameterTypes(Method method, Object[] args) { Class<?>[] types = method.getParameterTypes(); final Annotation[][] parAnnotations = method.getParameterAnnotations(); for (int x = 0; x < types.length; x++) { UnwrapParam p = getUnwrapParam(parAnnotations[x]); if (p != null) { String s = p.methodName(); String tn = p.typeMethodName(); try { Method m = args[x].getClass().getMethod(s); if ("#default".equals(tn)) { types[x] = m.getReturnType(); } else { Method m2 = args[x].getClass().getMethod(tn); types[x] = (Class<?>)ReflectionUtil.setAccessible(m2).invoke(args[x]); } args[x] = ReflectionUtil.setAccessible(m).invoke(args[x]); } catch (Exception ex) { throw new RuntimeException(ex); } } } return types; }
void visitLineNumber(int i, @UnwrapParam(typeMethodName = "realType") Label l0); void visitInsn(int return1);
void visitJumpInsn(int ifnonnull, @UnwrapParam(typeMethodName = "realType") Label nonNullLabel); void visitFrame(int type, int nLocal, Object[] local, int nStack, Object[] stack);
void visit(String arg0, @UnwrapParam(typeMethodName = "realType") ASMType arg1); void visit(String arg0, Object arg1);
void visitLabel(@UnwrapParam(typeMethodName = "realType") Label l1); void visitMaxs(int i, int j);
void visitLineNumber(int i, @UnwrapParam(typeMethodName = "realType") Label l0); void visitInsn(int return1);
void visitLineNumber(int i, @UnwrapParam(typeMethodName = "realType") Label l0); void visitInsn(int return1);
void visit(String arg0, @UnwrapParam(typeMethodName = "realType") ASMType arg1); void visit(String arg0, Object arg1);
void visitJumpInsn(int ifnonnull, @UnwrapParam(typeMethodName = "realType") Label nonNullLabel); void visitFrame(int type, int nLocal, Object[] local, int nStack, Object[] stack);
void visitLineNumber(int i, @UnwrapParam(typeMethodName = "realType") Label l0); void visitInsn(int return1);
void visitLabel(@UnwrapParam(typeMethodName = "realType") Label l1); void visitMaxs(int i, int j);
void visit(String arg0, @UnwrapParam(typeMethodName = "realType") ASMType arg1); void visit(String arg0, Object arg1);
void visitLabel(@UnwrapParam(typeMethodName = "realType") Label l1); void visitMaxs(int i, int j);
void visitJumpInsn(int ifnonnull, @UnwrapParam(typeMethodName = "realType") Label nonNullLabel); void visitFrame(int type, int nLocal, Object[] local, int nStack, Object[] stack);
void visit(String arg0, @UnwrapParam(typeMethodName = "realType") ASMType arg1); void visit(String arg0, Object arg1);
void visitJumpInsn(int ifnonnull, @UnwrapParam(typeMethodName = "realType") Label nonNullLabel); void visitFrame(int type, int nLocal, Object[] local, int nStack, Object[] stack);