Zhenya7727
Мудрец
(11350)
1 год назад
Бывают в жизни моменты, когда в зависимости от типа данных немного меняется логика. Из-за этого небольшого момента в логике программы иногда приходится писать кучу ненужного (с момента появления параметризации) кода.
Для таких целей была придумана параметризация, которая позволяет обобщить тип переменной.
Где это используется (в интерфейсах)?
Вы можете рассмотреть интерфейс Callable, который параметризован одним типом - тип возращаемого значения. Это некое проявление абстракции. Разработчик, писавший интерфейс Callable, не мог предположить, какой из типов вы должны получать из потока. Да, он мог написать кучу таких Callable для Integer, для String, для Double и тд., но разве это удобно? Поэтому с помощью одного интерфейса Callable и параметризации вы можете ЛИЧНО САМИ передать тот тип, который нужен при возращении ИМЕННО ВАМ
SimpleObject<T> getInstance();
}
static class StringObject implements SimpleObject<String> {
public SimpleObject<String> getInstance() {
return null;
}
}