Компилятор пытается найти параметр типа R
для Stream#map
. Поскольку аргумент map
является Function[String,Int]
, и он должен быть совместим с Function[_ >: String, _ <: R]
(из подписи map
), существует ограничение Int <: R
. Но поскольку это метод Java, есть также ограничение R <: Object
(по крайней мере, я так думаю). Так что нет подходящего R
.
Сообщение об ошибке не очень хорошо в этом случае, потому что оно не дает второго ограничения.
Чтобы исправить, как я уже упоминал в комментарии, вы можете просто использовать mapToInt
, но на самом деле есть еще худшее сообщение об ошибке, которое определенно следует исправить (я сообщал о проблеме): указание map[Int]
приводит к
type mismatch;
found : Array[Int]
required: Array[Int]
Note: Int >: Int, but class Array is invariant in type T.
You may wish to investigate a wildcard type such as `_ >: Int`. (SLS 3.2.10)