2
外部特性のサブクラスによってのみアクセスできるように、内部特性のメソッドを修飾したいと考えています。例:外部から私的であるが内部からアクセスできるように内部特性のメソッドを修飾する
trait Tree[A] {
trait TNode {
final def prevOption: Option[TNode] = Option(prev)
protected[Tree] def prev: TNode // !
}
def test(n: TNode): Option[TNode] = Option(n.prev)
}
次がコンパイルしているので、どのように私は、prev
の修飾子を変更することができます。
def test3[A](t: Tree[A]#TNode) = t.prev
(:このはコンパイルしていませんが
trait TreeImpl[A] extends Tree[A] {
def test2(n: TNode): Option[TNode] = Option(n.prev)
}
をつまり、一般公開def prev: TNode
はオプションではありません)。