kotlin中调用其他类的静态方法,属性

在kotlin中的静态方法和变量是用companion object包裹,调用的时候用到Companion,很简单,直接上代码

class DemoActivity : AppCompatActivity() {
    companion object {
        val propertyname: String = ""
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_demo)
    }
}

在其他类里面调用,不是类名.属性名,或者方法名

DemoActivity.Companion.getPropertyname()

lateinit 和 by lazy 的区别:
1.lazy{} 只能用在val类型, lateinit 只能用在var类型 如 :

val name: String by lazy { "sherlbon" }
lateinit var adapter: MyAdapter12

2.lateinit不能用在可空的属性上和java的基本类型上 如:

lateinit var age: Int  //会报错1

3.lateinit可以在任何位置初始化并且可以初始化多次。而lazy在第一次被调用时就被初始化,想要被改变只能重新定义
4.lateinit 有支持(反向)域(Backing Fields)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,259评论 9 118
  • Google在今年的IO大会上宣布,将Android开发的官方语言更换为Kotlin,作为跟着Google玩儿An...
    蓝灰_q阅读 76,984评论 31 489
  • kotlin语言简介 kotlin是一种静态类型编程语言,和Java一样也是基于jvm的,但是比Java更简洁,更...
    记忆中的白阅读 604评论 0 1
  • 周六到孩子的姥姥家,刘芙伽第一次吃柚子,挺喜欢吃的,在走的时候,刘芙伽不断地往屋里看,突然迅速的跑到屋子里,抱起剩...
    老嗨_1cf7阅读 207评论 0 0
  • 已接近深秋,天也渐渐冷了下来,俗话说一场秋雨一场冷,苏州这样一个江南水乡当然少不了雨水的眷顾,最近小雨也是时不时来...
    三枚真果阅读 314评论 0 0