Scala - 限制对通用案例类的访问

时间:2015-07-20 14:25:58

标签: scala generics case-class extractor

如果我想要一个无法从包外部手动构建的案例类,标准方法将是这样的:

case class Foo private[p](a:A,b:B)
object Foo{
    def apply(c:C) = {
        require tit
        require tat
        Foo(c.a,c.b)
    }
}

如果这个类看起来像这样,那么任何方法都可以:

case class Bar[T <: MySomething[T]] private[p](t:T)

或者我是否必须满足于编写一个负责创建案例类的def并且必须明确调用它?

修改

似乎我不清楚我的问题是什么......

如何将所需参数传递给object / apply函数?

0 个答案:

没有答案