@PublicAPI(usage = ACCESS)
    public static List<String> formatNamesOf(Class<?>... paramTypes) {
        return formatNamesOf(copyOf(paramTypes));
    }
@Test
    public void formatNamesOf() {
        assertThat(Formatters.formatNamesOf()).isEmpty();

        assertThat(Formatters.formatNamesOf(List.class, Iterable.class, String.class))
                .containsExactly(List.class.getName(), Iterable.class.getName(), String.class.getName());

        assertThat(Formatters.formatNamesOf(emptyList())).isEmpty();

        assertThat(Formatters.formatNamesOf(of(List.class, Iterable.class, String.class)))
                .containsExactly(List.class.getName(), Iterable.class.getName(), String.class.getName());

        // special case because the inferred type of the list is List<Class<? extends Serializable>>
        assertThat(Formatters.formatNamesOf(of(String.class, Serializable.class)))
                .containsExactly(String.class.getName(), Serializable.class.getName());
    }