static JavaType constructType(Type type) {
        try {
            return constructTypeInner(type);
        } catch (Exception e) {
            throw new InvalidDataTableTypeException(type, e);
        }
    }
@Test
    <T> void type_variables_are_not_allowed() {
        Type typeVariable = new TypeReference<List<List<T>>>() {
        }.getType();

        InvalidDataTableTypeException exception = assertThrows(
            InvalidDataTableTypeException.class,
            () -> TypeFactory.constructType(typeVariable));

        assertThat(exception.getMessage(), is("" +
                "Can't create a data table type for type java.util.List<java.util.List<T>>. " +
                "Type contained a type variable T. Types must explicit."));
    }