@Override
    public Object apply(Object instance) {
      Objects.requireNonNull(instance, "instance");
      try {
        return method.invoke(instance);
      } catch (IllegalAccessException| InvocationTargetException e) {
        throw new RuntimeException(e);
      }
    }
Extracts value by calling a method using reflection
criteria/common/src/org/immutables/criteria/reflect/Reflections.java