Scala类型系统与Scala和Java互操作性详解
1. 方差规则
方差规则主要涉及不变类型、协变类型和逆变类型,具体规则如下:
- 可变容器应为不变类型 :不变类型是可变的,它既会返回特定类型,也会以特定类型被调用。
- 不可变容器应为协变类型 :协变类型是值的不可变持有者。
- 转换的输入应为逆变,输出应为协变 :Scala的FunctionN特质具有逆变参数和协变结果。
2. 类型边界
在定义参数化类型时,边界允许对类型参数进行限制,类型边界分为上界类型和下界类型。
2.1 上界类型
上界类型被限制为特定类型或其派生类型之一。Scala提供了上界关系运算符 <: 来指定类型的上界。
Trait Test:
def test[A <: AnyRef]: Unit
在上述代码中,上界类型表明参数A使用的任何类型都必须是AnyRef的子类型。
以下是一个示例,定义一个Employee类层次结构,并测试上界类型的限制:
scala> class Employee (val name: String)
defined class Employee
scala> class Internal (name: String)
Scala类型系统与Java互操作详解
超级会员免费看
订阅专栏 解锁全文
61

被折叠的 条评论
为什么被折叠?



