code: @Override
      public String convertToString(T object) {
          try {
              return (String) toString.invoke(object);
          } catch (IllegalAccessException ex) {
              throw new IllegalStateException("Method is not accessible: " + toString);
          } catch (InvocationTargetException ex) {
              if (ex.getCause() instanceof RuntimeException) {
                  throw (RuntimeException) ex.getCause();
              }
              throw new RuntimeException(ex.getMessage(), ex.getCause());
          }
      }
docs: Converts the object to a {@code String}.
  @param object  the object to convert, not null
  @return the converted string, may be null but generally not