public static @Nullable <T, V> V getImplementation(final Class<V> clazz, final T... elements) {
    return getImplementation(clazz, Arrays.asList(elements));
  }
public static @Nullable <T, V> V getImplementation(final Class<V> clazz, final T... elements)