购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 继续前进

对于大多数类来说,将Java代码转换为Kotlin代码既快速又容易。转换后的结果与现有的Java代码完全兼容。

如果我们想要实现值语义,数据类允许我们为EmailAddress这样的简单类删除更多样板代码。因为数据类创建起来非常快速和容易,并且不需要维护,所以在Kotlin中比在Java中更为频繁地使用它来定义新的值类型,例如:定义包装了原始值的应用程序专属“微类型”,保存计算管道的中间结果,或者将数据转换为临时结构,从而更轻松地编写应用程序逻辑。

如果值类型必须保持不变性或封装其内部表示,那么数据类就不合适了。在这种情况下,我们必须自己实现值语义。

目前,EmailAddress和Money类看起来仍然像“Java-y...Java-ish?...Java-esque?...”。在接下来的章节中,我们将探索如何用Kotlin惯用语言来使代码更简洁、更安全,更易于构建。第9章考察如何通过将上述两个类中的toString方法,或Money类的equals和hashCode重构为单表达式形式,使计算函数和方法更简洁。在第12章中,我们通过定义运算符而不是方法,使Money类在Kotlin中更易于使用。

并非所有的Java类都是值类型,流行的Java编码风格偏爱可变对象。在第5章中,我们将看到在Java中使用可变对象的场景下,替换为使用值类型的优势,并展示如何将代码从操作可变对象重构为对值的转换。

Java代码中有很多存放静态实用方法的类。在Kotlin中,函数和数据是头等功能,它们不需要被声明为类的成员。第8章探讨如何将Java中的实用方法类转换为顶层声明。 OaixzsNaJ+HCzP9IyT8JS/25PyEDOYkjNcC7XNgEkXm/9k1ja+99wDhg1SzlNBUa

点击中间区域
呼出菜单
上一章
目录
下一章
×