Scala: Проблемы со стиранием при замене функции равенства для параметризованных классов

У меня проблемы с пониманием того, как использовать манифесты.

Это моя проблема: Я создал новый параметризованный класс C и попытался переопределить такие равенства:

override def equals(that:Any)=that match{
 case that:C[T] => true /*do smth else not relevant*/
 case _ => false
}

Конечно, я получил «предупреждение: неизменяемый аргумент типа T в шаблоне типа C [T] не отмечен, так как он удаляется стиранием» . Я пробовал использовать манифесты, как я использовал во многих других функциях:

override def equals(that:Any)(implicit manifest:Manifest[T])=that match{
 case that:C[T] => true
 case _ => false
}

Но я получил сообщение «ошибка: метод равно ничего не отменяет».

Я не знаю, как это исправить. Может ли кто-нибудь мне помочь?

5
задан OscarRyz 1 December 2010 в 19:10
поделиться