复合类型很简单,表示多个类型的交集,用with来表示。
假设我们定义了两个traits:
trait Cloneable extends java.lang.Cloneable {override def clone(): Cloneable = {super.clone().asInstanceOf[Cloneable]}}trait Resetable {def reset: Unit}
假如我们需要接受一个对象它即可以是Cloneable又可以是Resetable,那么可以这样定义:
def cloneAndReset(obj: Cloneable with Resetable): Cloneable = {//...}
