Эта статья про Generics в Kotlin — особенности их использования, сходства и различия с Generics в Java.
public interface List<E> extends Collection<E> {
//...
}
Заранее неизвестно, объекты какого класса будут содержаться в списке, но это определится при его использовании:
List<String> list = new ArrayList<>();
Теперь это не просто список, а список строк. Generics помогают обеспечить типобезопасность: в List можно попытаться положить любой объект, но в List<String> — только String или один из его потомков.
Я разделю рассказ про Generics на две части: собственно Generics и использование Wildcards. Пока речь не заходит про Wildcards, использование Generics в Kotlin мало чем отличается от Java.
Читать полностью »