大数据系列修炼-Scala课程78

本文探讨了Scala中的类型(Type)与Class的操作,包括如何定义类型、this.type的作用,以及它们与Java中泛型的关系。通过实例程序展示了在泛型使用后,类型与Class不再一一对应的情况。

大数据系列修炼-Scala课程78


核心内容:
1、Type(类型)与Class操作代码实战


1、Type(类型)与Class操作代码实战

1>在Scala当中可以用以下两种方式定义类型:
①定义类、特质或对象
②直接用type关键字定义类型
在Scala当中,标注类型的时候可以直接用类和特质的名字来引用其类型,而要引用对象的类型,需要用对象的type成员来引用其类型,而不能直接用object的名字来引用其类型,主要是为了区别伴生对象和伴生类。
2>在Scala当中,任何类对象都有一个type属性, this.type是Scala提供的一种机制,其指向当前对象的类型。
3>Class其实是一种数据结构以及基于该数据结构的一种抽象,相对来说更加宏观,而Type相比于
Class来说则更加详尽。简单来说就是:type是详细级别的信息,而Class是更高层的信息。
4>在Java当中或在Scala当中,在引入泛型之前,具体对象的类型(即Type)和class是一一对应的,即一一映射的,但是在引入泛型之后,具体对象的类型(即Type)和class就不在一一映射了。
5>对于两个对象而言,若其类型(type)相同,则两个对象所属的类肯定相同,但是若两个对象的类相同,其类型不一定相同。
6>对于虚拟机JVM而言,并不关心泛型或类型系统,泛型在编译与运行的时候是被擦掉的,在运行的时候泛型的具体信息是通过
反射的方式获取到的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只懒得睁眼的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值