首页
学习
活动
专区
工具
TVP
发布

Kotlin基础十二-拓展方法和属性

拓展方法和属性

在Kotlin中,有一个很神奇的特性,就是可以为已经存在的类添加方法和属性。具体实现也很简单:

类原本并没有方法,但我们可以像上面这样拓展了类,为其拓展了这个方法,我们就可以像使用类的其他方法一样使用我们拓展的方法。

我们看这个方法是怎样声明的:

要拓展的类,在这里也就是,被称为,就是,这和声明一个函数几乎没什么差别,先是关键字,然后是要拓展的类的类型,紧接着是加方法名,再声明返回值,(可以省略),其他的和函数的声明没什么太大的差别。

需要注意的是,拓展方法无法访问类的和成员。

导入extension function

拓展方法不会自动导入,需自己动手。导入拓展的方法也很简单,就是.

如果使用,将会导入这个包里面的全部函数、类和拓展方法。

你还可以用关键字来命名别名,就像python那样:.

拓展方法具有静态属性,这意味着不能在子类中覆写父类的拓展方法。

从Java调用Kotlin的拓展方法

Kotlin的拓展方法转成Java时会被编译成Java的静态方法,因此调用Kotlin的拓展方法在Java中就像调用静态方法那样简单:

拓展属性

拓展属性和拓展方法几乎没什么差别:

需要注意的是是必须被声明和定义的。因为在拓展属性中,编译器不会再帮你自动生成和了。

在Kotlin中,之所以kotlin的集合比Java的集合多了更多的操作,就是因为Kotlin有拓展方法这个特性,像Kotlin集合中的、这些方法就是拓展方法。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180413G1GXPP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券