private static void tryArray(String name, JsonNode node, Object obj, Method setter) throws InvocationTargetException, IllegalAccessException {
        Class argClass = setter.getParameterTypes()[0];
        Class componentType = argClass.getComponentType();
        if (argClass.isArray()) {
            int len = node.size();
            Object arrayObject = Array.newInstance(componentType, len);
            for (int i = 0; i < len; i++) {
                Array.set(arrayObject, i, getVal(componentType, node.get(i)));
            }
            setter.invoke(obj, arrayObject);

        } else if (List.class.isAssignableFrom(argClass)) {
            Type listType = setter.getGenericParameterTypes()[0];
            Type elementType = null;
            if (listType instanceof ParameterizedType) {
                elementType = ((ParameterizedType) listType).getActualTypeArguments()[0];
            }
            if (elementType == null) {
                throw new IllegalArgumentException("Can't infer parameterized type for list in: " + node);
            }
            int len = node.size();
            List<Object> list = new ArrayList<>();
            for (int i = 0; i < len; i++) {
                list.add(getVal(elementType, node.get(i)));
            }
            setter.invoke(obj, list);
        }
    }
See the notes @link{TikaJsonSerializer}.
<p>
This currently requires a setString() option on objects that have enum parameters.
tika-serialization/src/main/java/org/apache/tika/serialization/TikaJsonDeserializer.java