я следующий класс случай:Почему 2.10 настаивает на определении границ параметра типа (отлично работает в 2.9)?
case class Alert[T <: Transport](destination: Destination[T], message: Message[T])
В Scala 2.9.2, следующий метод подписи составил штраф:
def send(notification: Alert[_]) {
notification match {
...
}
}
Сейчас в Scala 2.10.1 он не скомпилировать со следующими ошибка:
type arguments [_$1] do not conform to class Alert's type parameter bounds [T <: code.notifications.Transport]
Почему это? Как я могу исправить ошибку? Просто давая те же границы типа для send
результатов в гораздо больше ошибок компиляции ...
Обновление: Глядя на SIP-18, я не думаю, что причина в том, что у меня нет экзистенциальных типов включена, в качестве SIP -18 говорит, что это необходимо только для типов без подстановочных знаков, что и есть то, что у меня есть.
Я уже пробовал первый подход, и он просто вызвал больше ошибок компилятора, но второй работает для меня. – pr1001
Что касается не использования экзистенциальных типов, что бы вы посоветовали вам? – pr1001
У меня нет ошибок компиляции с первым подходом - возможно, вам нужно включить больше кода, чтобы они отображались? –