考虑以下示例:
trait T3
trait T2{
type TT4
type TT3 <: T3
}
trait T1{
type TT2 <: T2
}
现在我想写一个大致看起来像的函数
def test[T <: T1](t: T#TT2{type TT4 = Int}#TT3) = println(t) //invalid syntax
不幸的是,这不是一个有效的语法。完全可以写出这样的函数
def test[T <: T1](t: T#TT2#TT3) = println(t)
但我想对T#TT2
使其成为精炼类型添加更严格的限制T#TT2{ type TT4 = Int}
。
有什么解决方法吗?