Не думает, что collectors
- это List[String]
.
Вместо этого он замечает, что collectors
является неизменным и не имеет +=
метода.Поэтому он пытается десугар
collectors += nativeSystemCollector()
в
collectors = collectors + nativeSystemCollector()
, а затем не знает, что должен означать +
.Поскольку в List
нет метода +
, он неявно преобразует collectors
в String
, но затем замечает, что nativeSystemCollector()
не является другим String
, и сдается.
Еслиесли вы хотите создать список путем добавления элементов, используйте вместо этого изменяемый ListBuffer
:
val collectors = collection.mutable.ListBuffer[AbstractCollector]()
collectors += nativeSystemCollector()
collectors.toList
Добавление к List
в любом случае дорого.