Optional<Argument<?>> firstTypeVariable = context.getFirstTypeVariable(); Argument<?> argument = firstTypeVariable.orElse(Argument.OBJECT_ARGUMENT); Optional converted = DefaultConversionService.this.convert(object, context.with(argument)); if (converted.isPresent()) { return Optional.of(Collections.singletonList(converted.get())); Optional<String> convert = DefaultConversionService.this.convert(object, String.class, context); if (convert.isPresent()) { return convert.flatMap(val -> DefaultConversionService.this.convert(val, targetType, context)); return convert(val, targetType, context); }); return convert(joiner.toString(), targetType, context); }); for (int i = 0; i < strings.length; i++) { String string = strings[i]; Optional<?> converted = convert(string, componentType); if (converted.isPresent()) { Array.set(newArray, i, converted.get()); for (int i = 0; i < strings.length; i++) { String string = strings[i]; Optional<?> converted = convert(string, int.class); if (converted.isPresent()) { Array.set(newArray, i, converted.get()); List list = new ArrayList();