@Override
  public R apply(Class<?> c) {
    return cache.get(c);
  }
@Test
  void basic() {
    ClassValueCache<String> cache = new ClassValueCache<>(Class::toString);

    String fromCache = cache.apply(String.class);
    assertThat(fromCache, is("class java.lang.String"));

    assertThat(cache.apply(String.class), sameInstance(fromCache));
  }