如何根据依赖类型创建泛型约束?

时间:2017-08-07 20:24:05

标签: scala slick dependent-type

我有以下课程

trait Identifiable 


case class Address extends Identifiable


abstract class AbstractTable[T] {
  type TableElementType
}


class TableQuery[E <: AbstractTable[_]]


class Addresses(tag: Tag) extends Table[Address](tag, "addresses")

如何制作

abstract class AbstractOptionBaseRepsitory[T <: AbstractTable[_]]

仅接受T,其中T#TableElementTypeIdentifiable

的子类

1 个答案:

答案 0 :(得分:1)

怎么样

 abstract class IdentifiableAbstractTable[T] extends AbstractTable[T] {
    type TableElementType <: Identifiable
 }

 abstract class AbstractOptionBaseRepository[T <: IdentifiableAbstractTable[_]]