code: private boolean areTypesAssignable(Class<?> source, Class<?> target)
     {
        if (target.isAssignableFrom(source))
        {
           return true;
        }
        else if (!source.isPrimitive() && !target.isPrimitive())
        {
           return false;
        }
        else if (source.isPrimitive())
        {
           // source is primitive
           return primitiveToWrapperMap.get(source) == target;
        }
        else
        {
           // target is primitive
           return source == primitiveToWrapperMap.get(target);
        }
     }
docs: Check if the parameters are primitive and if they can be assignable