public static Object emptyValueOf(Type type) {
    return EMPTIES.getOrDefault(Types.getRawType(type), () -> null).get();
  }
@Test
  void emptyValueOf() throws Exception {
    assertThat(Util.emptyValueOf(boolean.class)).isEqualTo(false);
    assertThat(Util.emptyValueOf(Boolean.class)).isEqualTo(false);
    assertThat((byte[]) Util.emptyValueOf(byte[].class)).isEmpty();
    assertThat(Util.emptyValueOf(Collection.class)).isEqualTo(Collections.emptyList());
    assertThat(((Iterator<?>) Util.emptyValueOf(Iterator.class)).hasNext()).isFalse();
    assertThat(Util.emptyValueOf(List.class)).isEqualTo(Collections.emptyList());
    assertThat(Util.emptyValueOf(Map.class)).isEqualTo(Collections.emptyMap());
    assertThat(Util.emptyValueOf(Set.class)).isEqualTo(Collections.emptySet());
    assertThat(Util.emptyValueOf(Optional.class)).isEqualTo(Optional.empty());
  }