code: public static <E> List<Object> pluck(final List<E> list, final String propertyName) {
          if (list.isEmpty()) {
              return Collections.emptyList();
          }
          return map(list, new Function<E, Object>() {
              @Override
              public Object apply(E elem) {
                  try {
                      return elem.getClass().getField(propertyName).get(elem);
                  } catch (Exception e) {
                      try {
                          return elem.getClass().getMethod(propertyName).invoke(elem);
                      } catch (Exception ex) {
                          throw new IllegalArgumentException(ex);
                      }
                  }
              }
          });
      }
docs: /*
  Documented, #pluck