proste pytanie, mam problem gdzie korzystając mapTo od wyniku zwrócić wyniki w błąd kompilatora wzdłuż linii:Scala Future mapTo nie skompilować z powodu brakujących ClassTag
not found: value ClassTag
na przykład:
(job ? "Run").mapTo[Result]
^
Nie rozumiem, dlaczego do wykonania obsady potrzebny jest ClassTag? Jeśli podstawię klasę standardową z Predef, taką jak String
, tak jak w (job ? "Run").mapTo[String]
, która kompiluje OK.
Dzieje się tak, kiedy definiują prawo klasę wyżej danej linii, jak w:
class Result {}
(job ? "Run").mapTo[Result]
wciąż otrzymuję ten sam problem.
Dzięki, Jason.
Należy również stwierdzić, że używam Scala 2.10.0 i Akka 2.1.0 (jeśli to robi różnicę).
Twój kod wygląda na jak dotąd prawidłowy - możesz więc wysłać import, którego używałeś? Może brak importu. –
Właśnie znalazłem [komentarz] (http://grokbase.com/p/gg/scala-language/126k8nt1fx/incompatibility-between-scala-2-10-m3-and-m4) o niekompatybilności w różnych kamieniach milowych Scala 2.10.0. Sugeruje to 'import reflect.ClassTag'. Spróbuj użyć Scala 2.10.1 i Akka 2.1.1, jeśli jest to problem, który został naprawiony dopiero niedawno. –
@michael_s, geniuszu, dzięki za to, że dodanie 'import reflect.ClassTag' załatwiło sprawę! Nie próbowałem już aktualizować wersji Scala, nieco niechętnie zmieniają zależności pakietu w tym momencie cyklu rozwojowego. Jeśli chcesz opublikować swój komentarz jako odpowiedź, mogę oznaczyć go poprawnie i nadać mu pewien status. – JMac