code: private <T> MethodConstructorStringConverter<T> findFromStringConstructor(Class<T> cls, Method toString) {
          Constructor<T> con;
          try {
              con = cls.getDeclaredConstructor(String.class);
          } catch (NoSuchMethodException ex) {
              try {
                  con = cls.getDeclaredConstructor(CharSequence.class);
              } catch (NoSuchMethodException ex2) {
                  return null;
              }
          }
          FromString fromString = con.getAnnotation(FromString.class);
          if (fromString == null) {
              return null;
          }
          return new MethodConstructorStringConverter<T>(cls, toString, con);
      }
docs: Finds the conversion method.
  
  @param <T>  the type of the converter
  @param cls  the class to find a method for, not null
  @param toString  the toString method, not null
  @return the method to call, null means none found
  @throws RuntimeException if invalid