将类型类与Scala-Guice绑定

时间:2016-06-09 02:06:35

标签: scala guice

我希望我走在正确的轨道上。

我有一个SBT子项目(model),它定义了一个抽象类AbstractTrainingEntity和几个子类(LectureSection等。)另一个SBT子项目({{ 1}})cadenza第一个SBT子项目。

dependsOn子项目定义了一个抽象类型类,其中包含两个将在model子项目中实现的方法签名。这是为了允许cadenza子项目中的代码引用在两个SBT子项目链接在一起之前未定义的方法:

model

import reflect.runtime.universe._ abstract class AbstractTranscodeDispatch[A: TypeTag](dispatchType: AbstractTrainingEntity) { def transcodeUrl(trainingEntity: AbstractTrainingEntity): String def uploadUrl(trainingEntity: AbstractTrainingEntity): String } 子项目在cadenza模块中将它们连接在一起:

Scala-Guice

这会出错:

import reflect.runtime.universe._

class CadenzaModule extends AbstractModule with ScalaModule {
  @Provides
  def provideTranscodeDispatch[T: TypeTag](dispatchType: AbstractTrainingEntity) = new TranscodeDispatch[T](dispatchType)
}

[error] /var/work/training/cadenza/modules/cadenza/app/modules/cadenza/CadenzaModule.scala:53: javassist.bytecode.stackmap.TypeTag does not take type parameters [error] def provideTranscodeDispatch[T: TypeTag](dispatchType: AbstractTrainingEntity) = new TranscodeDispatch[T](dispatchType) 子项目的其他地方有一个实现

cadenza

我需要以某种方式使用class TranscodeDispatch[A: TypeTag](dispatchType: AbstractTrainingEntity) extends AbstractTranscodeDispatch[A](dispatchType) 吗?我这一切都错了吗?文档很薄。

0 个答案:

没有答案