我希望我走在正确的轨道上。
我有一个SBT子项目(model
),它定义了一个抽象类AbstractTrainingEntity
和几个子类(Lecture
,Section
等。)另一个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)
吗?我这一切都错了吗?文档很薄。