ListAdapter
параметризован с типом Plant
в качестве типа модели презентации, который список получит в этом случае.Таким образом, если определение метода getItem
в ListAdapter
указано следующим образом:
protected T getItem(int position) {
return mHelper.getItem(position);
}
, то после предоставления Plant
в качестве аргумента типа этот метод будет «преобразован» (давайте пропустим удаление типа иметоды моста в этом примере) в это:
protected Plant getItem(int position) {
return mHelper.getItem(position);
}
Kotlin поддерживает вывод типов при инициализации переменных.Это означает, что если тип переменной не был указан явно (например, val plant: Plant = ...
), то тип будет выведен из типа результата выражения.Поскольку мы знаем, что после параметризации ListAdapter
с помощью Plant
метод getItem
вернет нам экземпляр Plant
, тогда этот тип будет выведен для объявленной переменной в val plant = getItem(position)
.
В Javaсоответствующая декларация будет выглядеть так:
Plant plant = this.getItem(position);