五-3, Scala 类型检查和转换, 枚举类, 应用类,定义新类型
1. 类型检查和转换
| 用法 | 说明 |
|---|---|
| obj.isInstanceOf[T] | 判断obj是不是T类型, 返回布尔值 |
| obj.asInstanceOf[T] | 将pbj强转成T类型, 返回的是 包名.类名@地址 |
| classOf[类名] | 获取对象的类名,返回的是 class 包名.类名 |
package patternmatchdemo
class Person{
}
object Person {
def main(args: Array[String]): Unit = {
val person = new Person
//(1)判断对象是否为某个类型的实例
val bool: Boolean = person.isInstanceOf[Person]
if ( bool ) {
//(2)将对象转换为某个类型的实例
val p1: Person = person.asInstanceOf[Person]
println(p1)
}
//(3)获取类的信息
val pClass: Class[Person] = classOf[Person]
println(pClass)
}
}
2. 枚举类和应用类
枚举类: 需要继承
Enumeration
应用类: 需要继承Appobject他继承了App类,没有写main方法,但是可以生产运行,这是由于App类是Scala自己提供的一个类,它的作用是
当object继承它时,不需要写main方法,而是将整个的类看做一个main方法, 可以直接运行
package patternmatchdemo
object Test {
def main(args: Array[String]): Unit = {
println(Color.RED)
}
}
// 枚举类
///注意, Value中的1,2,3是标识用的, 代表是这个value是这个枚举类中的唯一值
object Color extends Enumeration {
val RED = Value(1, "red")
val YELLOW = Value(2, "yellow")
val BLUE = Value(3, "blue")
}
3. Type 定义新类型
- 使用 type 关键字可以定义新的数据数据类型名称,本质上就是类型的一个别名
object Test {
def main(args: Array[String]): Unit = {
type S=String
var v:S="abc"
def test():S="xyz"
}
}

浙公网安备 33010602011771号