16、Scala类型系统与Scala和Java互操作性详解

Scala类型系统与Java互操作详解

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值