首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kotlin系列之智能转换

今天我们来学学Kotlin中的智能转化。

在开始说概念之前,我们先说说Java中的一个现象,然后再对比Kotlin中的处理。

Java中的instanceof

首先说说instanceof的用法,它是用来判断左边的对象是不是右边类的实例。如果左边的对象为null,则返回false。如果左边的对象是右边类的实例,或者是左边的对象是右边类的子类的实例,则返回true。下面放上一个Java示例代码。

Java代码

上面的代码通过传入的bill对象使用instanceof来判断它属于哪一种类型的账单,然后再调用不同的计算方法。当然上面的代码也可以不使用instanceof来处理,下面是另一种使用多态的写法。

上面的代码是使用了方法重载来避免使用instanceof。

Kotlin中的智能转换

智能转换,用一句话来总结就是它合并了类型检查和转换这两步操作。可能这么说有些空洞,上代码来解释。

上面的Java代码中,我们看到了这样的代码

这里的代码就是先做了类型检查,之后再做了类型的转换。而在Kotlin中这两步操作它帮我们简化了。

Kotlin代码

上面的代码有几点需要注意:

上面有一个Bill接口,然后在具体类中通过表示实现该接口。

使用来做类型检查,等同于Java中的。

不需要强制类型转化,直接可以调用对应的方法。

写在最后

Kotlin中的智能转换特性可以让我们写出更简洁和优雅的代码,后续我们将会了解到更多的这种特性。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券