Kotlin - Any?&Any类型介绍

201 阅读1分钟
  • Any?是所有可空类型的父类,例如String?,Int?;
  • Any是所有非空类型的父类,例如String,Int;
  • Any?是Any的父类,因为Any可以赋值给Any?,以下代码是成立的,但是反过来就不行,无论是Any?还是Any,都对应Java的Object;
var a: Any = Any()
var b: Any? = a
  • Noting?是Noting的父类,Noting是最底层的类型;
  • throw关键字返回类型是Noting,以下代码是成立的
fun calculate2(): Unit = throw Exception() 
总结

Any?是最顶层的类型,Noting是最底层的类型。