code: @Nullable
      public final <T> T evalUnique(final Object object, final Class<T> resultClass)
              throws IllegalArgumentException {
  
          Preconditions.checkNotNull(object);
          Preconditions.checkNotNull(resultClass);
  
          try {
              return toUnique(doEval(object), resultClass);
  
          } catch (final Exception ex) {
              if (isLenient()) {
                  return null;
              }
              throw new IllegalArgumentException("Evaluation of XPath failed: " + ex.getMessage()
                      + "\nXPath is: " + this.support.string + "\nInput is: " + object
                      + "\nExpected result is: " + resultClass.getSimpleName(), ex);
          }
      }
docs: Evaluates this {@code XPath} expression on the object supplied, producing as result a
  unique object of the type {@code T} specified.
  
  @param object
  the object to evaluate this expression on
  @param resultClass
  the {@code Class} object for the result object
  @param <T>
  the type of result
  @return on success, the unique object of the requested type resulting from the evaluation,
  or null if evaluation produced no results; on failure, null is returned if this
  {@code XPath} expression is lenient
  @throws IllegalArgumentException
  if this {@code XPath} expression is not lenient and evaluation fails for the
  object supplied