public static <L extends EventListener> void addListener(
            Object bean, Class<L> listenerClass, L listener) {
        Method addListener = getBeanMate(bean.getClass())
                .addListenerMap.get(listenerClass);
        if (addListener == null) {
            throw new IllegalArgumentException(
                    listenerClass.getName() + " is not supported.");
        }
        ReflectionUtils.invoke(addListener, bean, listener);
    }