大数据系列修炼-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而言,并不关心泛型或类型系统,泛型在编译与运行的时候是被擦掉的,在运行的时候泛型的具体信息是通过
反射的方式获取到的。
本文探讨了Scala中的类型(Type)与Class的操作,包括如何定义类型、this.type的作用,以及它们与Java中泛型的关系。通过实例程序展示了在泛型使用后,类型与Class不再一一对应的情况。
订阅专栏 解锁全文
1309

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



