public ArgumentReader resolveReader(Class<?> type)
    {
        ArgumentReader reader = getReader(type);
        if (reader == null)
        {
            for (Class<?> next : readers.keys())
            {
                if (type.isAssignableFrom(next))
                {
                    reader = readers.get(next);
                    if (reader != null)
                    {
                        register(reader, type);
                        break;
                    }
                }
            }
        }
        return reader;
    }