Почему вы не можете обобщить параметры c классов? - PullRequest
2 голосов
/ 25 мая 2020

Когда вы определяете параметры c классов, вы можете использовать только фиксированное количество параметров.

class Container<T> {
    ...
}

Однако, если вы хотите создать, скажем, карту с несколькими значениями. Вы должны использовать Map<K, List<V>> вместо Map<K, V1, V2, V3>. Почему вы не можете определить что-то вроде?

class Map<K, V, ...> {
    ...
}

1 Ответ

3 голосов
/ 25 мая 2020

Можно, если вы реализуете класс Tuple с 3 элементами.

class Tuple3<T1, T2, T3> {
    private final T1 t1;
    private final T2 t2;
    private final T3 t3;

    // constructor, getters, ...
}

Тогда вы можете его использовать:

Map<K, Tuple3<V1, V2, V3>>

Это не входит в обязанности Map для поддержки нескольких типов значений . См. Разделение функций (So C) для получения дополнительной информации об этом topi c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...