public T valueOf(Class<?> firstNameComponent, String secondNameComponent) {
        return valueOf(
                checkNotNull(firstNameComponent, "firstNameComponent").getName() +
                '#' +
                checkNotNull(secondNameComponent, "secondNameComponent"));
    }
@Test
    public void testCannotProvideNullName() {
        assertThrows(NullPointerException.class, new Executable() {
            @Override
            public void execute() {
                pool.valueOf(null);
            }
        });
    }