大数据系列修炼-Scala课程78
来源:互联网 发布:万网域名后台登陆 编辑:程序博客网 时间:2024/05/18 03:57
大数据系列修炼-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而言,并不关心泛型或类型系统,泛型在编译与运行的时候是被擦掉的,在运行的时候泛型的具体信息是通过
反射的方式获取到的。
实例程序1:
实例程序2:
运行结果:
StringStringstr1.typestr2.typeclass java.lang.Stringclass java.lang.String
从上面的程序可以看出,无论是str1对象还是str2对象,其类型(type)和其类(class)是一一对应的。
实例程序3:
运行结果:
List[String]List[Int]list1.typelist2.typeclass scala.collection.immutable.$colon$colonclass scala.collection.immutable.$colon$colon
从上面的程序可以看出,引入泛型之后,具体对象的类型和其类不存在一一映射的关系。
实例程序4:
运行结果:
outer1.Innerouter2.Innerinner1.typeinner2.typeclass com.app.scala.review.Outer$Innerclass com.app.scala.review.Outer$Inner
从上面的程序可以看出两个对象的类型相同,其类必然相同。
如有问题,欢迎留言!
- 大数据系列修炼-Scala课程78
- 大数据系列修炼-Scala课程01
- 大数据系列修炼-Scala课程02
- 大数据系列修炼-Scala课程03
- 大数据系列修炼-Scala课程04
- 大数据系列修炼-Scala课程05
- 大数据系列修炼-Scala课程06
- 大数据系列修炼-Scala课程07
- 大数据系列修炼-Scala课程08
- 大数据系列修炼-Scala课程09
- 大数据系列修炼-Scala课程10
- 大数据系列修炼-Scala课程11
- 大数据系列修炼-Scala课程12
- 大数据系列修炼-Scala课程15
- 大数据系列修炼-Scala课程17
- 大数据系列修炼-Scala课程18
- 大数据系列修炼-Scala课程19
- 大数据系列修炼-Scala课程20
- 圆
- 笔记
- Hadoop Install
- 大数据系列修炼-Scala课程77
- Java 中的反射
- 大数据系列修炼-Scala课程78
- 给定两个正整数,求两个数的正差值
- SlidingMenu配置
- 对话框
- 10月8日上机操作raptor
- 元一
- 郝斌老师C语言视频观感
- 工作起来心无旁骛这是你唯一的优点!
- html--跑马灯效果、线包字效果