public static <T> Class<? extends T>[] convertStringListToClassTypeArray(List<String> classNames, Class<? extends T> targetClassType) {
        Class<? extends T>[] array = (Class<? extends T>[]) Array.newInstance(Class.class, classNames.size());

        return classNames.stream()
                .map(className -> (Class<? extends T>) convertStringToClassType(className, targetClassType))
                .collect(Collectors.toList())
                .toArray(array);
    }
@Test
    public void testConvertStringsToClassesList() {
        List<String> recordExceptionsList = List.of("java.lang.Exception", "java.lang.RuntimeException");

        Class<? extends Throwable>[] recordExceptions = ClassParseUtil
                .convertStringListToClassTypeArray(recordExceptionsList, Throwable.class);

        Assertions.assertThat(recordExceptions).containsExactlyInAnyOrder(Exception.class, RuntimeException.class);
    }