我想知道是否有人有任何创建类型参数化类型层次结构的经验?我相当肯定这是由于scala伪静态包装对象的结合而导致的。类型参数化类型层次结构
具体使用情况下,我心目中是一个参数化类型的id在应用程序框架,所以你可以使用的int
/long
/java.util.UUID
/BSONId
/不管你的选择。考虑作为一个粗略的例子:
package object myprj {
object foolib extends foolib.generic.FooTaxonomy[java.util.UUID]
// Whee!
val someEntity = new myprj.foolib.Entity(java.util.UUID.randomUUID())
}
是否有任何理由,这是一个引人注目的坏主意:
package foolib.generic
trait GenEntity[I] { def id: I }
trait GenRepository[I] { def getById(id: I): GenEntity[I] }
trait FooTaxonomy[I] {
type Entity = GenEntity[I]
type Repository = GenRepository[I]
object subpackage extends generic.subpackage.SubpackageTaxonomy[I]
}
你会再与类似配置使用层次的项目呢?任何陷阱/我应该知道的?
可能是我,但我不明白你想达到的目标。 – Jatin