protected Object[] createWriteMethodArguments(Method method, Object value) throws IllegalAccessException {
        try {
            if (value != null) {
                Class<?>[] types = method.getParameterTypes();
                if (types != null && types.length > 0) {
                    Class<?> paramType = types[0];
                    if (paramType.isPrimitive()) {
                        paramType = PrimitiveUtils.wrap(paramType);
                    }
                    if (!paramType.isAssignableFrom(value.getClass())) {
                        value = convertType(paramType, value);
                    }
                }
            }
            return new Object[]{value};
        } catch (InvocationTargetException | InstantiationException e) {
            throw new IllegalArgumentException(e.getMessage());
        }
    }
Creates an array of parameters to pass to the given mutator method.
If the given object is not the right type to pass to the method
directly, it will be converted using {@link #convertType(Class,Object)}.

@param method the mutator method
@param value  the value to pass to the mutator method
@return an array containing one object that is either the given value
        or a transformed value
@throws IllegalAccessException   if {@link #convertType(Class,Object)}
                                 raises it
@throws IllegalArgumentException if any other exception is raised
                                 by {@link #convertType(Class,Object)}
querydsl-core/src/main/java/com/querydsl/core/util/BeanMap.java