private BeanMate(Class<?> beanClass) {
            setterMap = new HashMap<>();
            addListenerMap = new HashMap<>();
            for (Method method : beanClass.getMethods()) {
                if (method.getParameterTypes().length == 1) {
                    String name = method.getName();
                    if (name.startsWith("set")) {
                        setterMap.put(Character.toLowerCase(
                                name.charAt(3)) + name.substring(4), method);
                    }
                    if (name.startsWith("add") && name.endsWith("Listener")) {
                        addListenerMap.put(method.getParameterTypes()[0], method);
                    }
                }
            }
        }