MethodConstructorStringConverter(Class<T> cls, Method toString, Constructor<T> fromString) {
        super(cls, toString);
        if (cls.isInterface() || Modifier.isAbstract(cls.getModifiers()) || cls.isLocalClass() || cls.isMemberClass()) {
            throw new IllegalArgumentException("FromString constructor must be on an instantiable class: " + fromString);
        }
        if (fromString.getDeclaringClass() != cls) {
            throw new IllegalStateException("FromString constructor must be defined on specified class: " + fromString);
        }
        this.fromString = fromString;
    }