Scala, доступ к классу абстрактного типа в признаке - PullRequest
4 голосов
/ 23 ноября 2010

Я экспериментирую с неявными переменными в моем коде Scala. Я написал следующий пример кода, но, к сожалению, он не компилируется. Мне было интересно, кто-нибудь знает, что здесь не хватает? (с использованием Scala 2.8.0 с SBT 0.7.4 в Linux)

Спасибо, Али

trait Feed 
trait FeedFactory  {   
type T <: Feed   
implicit val op_name = classOf[T].getCanonicalName    
def create():T   
def destroy(op:T)   
}

Error: class type required but FeedFactory.this.T found    
implicit val op_name = classOf[T].getCanonicalName

1 Ответ

5 голосов
/ 23 ноября 2010

тип T забыт во время компиляции (см. Стирание типа).Но scala предлагает Manifest s, которые сохраняют тип при компиляции.

Вот более полное объяснение .

...