Переменная «Создать список по типу» - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу создать список, который имеет общий тип c, который не является константой. Лучший способ записать проблему заключается в следующем:

public List createListByType(Type myType) {
     return new ArrayList<myType>();
}

Поскольку приведенный выше код не работает, мне нужно обойти это решение.

Этот вопрос был задан 10 лет a go но он устарел. Не работает в Java 8.

1 Ответ

3 голосов
/ 14 апреля 2020

Если вы просто создаете новый List, он вам не нужен. Но если вы хотите добавить этот элемент в список или просто по какой-то причине иметь пустой список по типу, вот несколько примеров:

    public static <T> List<T> createMutableListByType(final Class<T> tClass){
        return new ArrayList<T>();
    }

    public static <T> List<T> createImmutableListWithType(final T type){
        return List.of(type);
    }

    public static <T> List<T> createMutableListWithType(final T type){
        final List<T> result = new ArrayList<>();
        result.add(type);
        return result;
    }
...