JetBrains 发布Kotlin 1.0

在Beta 之后仅仅几个月,JetBrains 正式宣布Kotlin 的第一个稳定版本,其基于JVM 并兼容Android的新语言。制造商表示,Kotlin 打算作为一个“好工具”,目的是为了驱动设计决策向实用性和互操作性前进。Kotlin 希望解决Java 中只能通过类库和外部工具来修复的许多问题,同时提供平滑和渐进的过渡机会。

\u0026#xD;\u0026#xD;

在2010年的初步设想中,JetBrains 决定创建Kotlin ,以此来提高开发他们自己的产品时(Kotlin 现在被使用在JetBrains 的产品中,比如IntelliJ IDEA)的生产效率。考虑到许多其他用户将不得不面对同样的问题,JetBrains 决定开源Kotlin,并且鼓励参与和贡献。因为它基于Java 1.6,Kotlin 很快在Android 开发者中流行起来,为他们提供了获取一系列其他版本和语言所拥有的流行特性。事实上流行的证据就是新的Android 开发工具,比如JRebel for Android,包含了对Kotlin 的支持。

\u0026#xD;\u0026#xD;

虽然Kotlin 在Android 开发中超越Java 的优势会在Android 完成迁移到OpenJDK 之后减弱,但是开发者能够在一些其他的领域获得益处。其中包括:

\u0026#xD;\u0026#xD;
  • Getter/Setter 引用:Java 中写代码来访问属性,典型的操作是通过IDE 辅助的代码生成、像Project Lombok 这样的字节码操作,或者是简单的将内部属性公开(这违背了封装的原则)。在Kotlin 中,数据类的创建默认为所有的属性提供了getter 和setter。 \u0026#xD;\u0026#xD;
  • toString、hashCode、equals:Java 为这三个方法提供默认实现,但是这些很少有用处,这意味着开发者通常必须重写默认方法并创建他们自己的。很多情况下,所需要的实现是足够简单的,以便于通过一些类库,比如Apache Commons Lang 和Google Guava 来提供。Kotlin 的数据类基于类的字段为这些方法提供了一个默认实现,类似于大部分开发者所需要的,这意味着不需要去重写这些方法。此外,Kotlin 的“==”操作符不是比较引用,而是和equals 方法一样。 \u0026#xD;\u0026#xD;
  • 对象的部分构建:在很多时候,一个对象需要在只有部分参数被提供,同时其他参数保持默认值的情况下被构建。这通常通过建造者模式来完成,它创建一个建造者类和目标类来创建需要的对象。Kotlin 通过支持命名参数来解决这个问题。 \u0026#xD;\u0026#xD;
  • 空值检查:对Java 开发者来说,避免空值是一个普遍头疼的问题,通常通过IDE检查(检测值一直为空)、类里面的断言(Objects.requireNotNull())、类似@NotNull 或者@NonNull 这样的注解的隐含验证、Google 的Optional,或者之后的Java 8的Optional来解决。在Kotlin 中,空值的概念已经被转移到语言自身,这意味着变量在编译时就知道它们自己是否为空: \u0026#xD;
val x: String? = \"Hi\" // Declaring x as a nullable String\u0026#xD;x.length // Does not compile, x could be null, null check needs to happen first\u0026#xD;\u0026#xD;if (x != null) {\u0026#xD;    x.length // Compiles, Kotlin understands that x is not null by this point\u0026#xD;}\u0026#xD;\u0026#xD;val y: String = null // Does not compile, y is not declared as nullable
\u0026#xD;\u0026#xD;
  • 字符串构建:在Java 中,我们可以通过使用连接运算符(\"a \" + 变量 + \" b\"),String.format() 方法能提供更好的可读性(String.format(\"a %s b\
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2名名名名名名名名名名名名名名名名名名名

谢谢啊011702

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值