addConverter(Double[].class, double[].class, (object, targetType, context) -> { double[] doubles = new double[object.length]; for (int i = 0; i < object.length; i++) { addConverter(Integer[].class, int[].class, (object, targetType, context) -> { int[] integers = new int[object.length]; for (int i = 0; i < object.length; i++) { addConverter(Object.class, List.class, (object, targetType, context) -> { Optional<Argument<?>> firstTypeVariable = context.getFirstTypeVariable(); Argument<?> argument = firstTypeVariable.orElse(Argument.OBJECT_ARGUMENT); addConverter(CharSequence.class, Class.class, (object, targetType, context) -> { ClassLoader classLoader = targetType.getClassLoader(); if (classLoader == null) { addConverter(AnnotationClassValue.class, Class.class, (object, targetType, context) -> object.getType()); addConverter(AnnotationClassValue[].class, Class.class, (object, targetType, context) -> { if (object.length > 0) { final AnnotationClassValue o = object[0]; addConverter(AnnotationClassValue[].class, Class[].class, (object, targetType, context) -> { List<Class> classes = new ArrayList<>(object.length); for (AnnotationClassValue<?> annotationClassValue : object) { addConverter(URI.class, URL.class, uri -> { try { return uri.toURL();