Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Scala Guice绑定Typeclass_Scala_Guice - Fatal编程技术网

用Scala Guice绑定Typeclass

用Scala Guice绑定Typeclass,scala,guice,Scala,Guice,我希望我在正确的轨道上 我有一个SBT子项目(model),它定义了一个抽象类AbstractTrainingEntity和几个子类(讲座,部分),另一个SBT子项目(华彩乐段)dependsOn第一个SBT子项目 model子项目定义了一个带有两个方法签名的抽象类型类,将在cadenza子项目中实现。这是为了允许模型子项目中的代码引用在两个SBT子项目链接在一起之前未定义的方法: import reflect.runtime.universe._ abstract class Abstrac

我希望我在正确的轨道上

我有一个SBT子项目(
model
),它定义了一个抽象类
AbstractTrainingEntity
和几个子类(
讲座
部分
),另一个SBT子项目(
华彩乐段
dependsOn
第一个SBT子项目

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

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)
我是否需要以某种方式使用
TypeLiteral
?我把这一切都搞错了?这些文件很薄