Kotlin 是什么?
Kotlin是JetBrains开发的针对JVM、Android 和浏览器的静态编程语言。
JetBrains,作为目前广受欢迎的 Java IDE IntelliJ IDEA 的开发商,在 Apache 许可下已经开源其Kotlin 编程语言。JetBrains 作为最智能的 Java IDE 的开发商,对 Java 的了解是毋庸置疑的,在使用 Java 过程中,JetBrains 的工程师们发现了大量的问题,为了更高效的开发以及解决 Java 中的一些问题,JetBrains 开发了致力于替代 Java 的 Kotlin。
为什么使用 Kotlin?
1、简洁——大大减少您需要编写的样板代码量
使用一行代码创建一个包含getter
,setter
并重写equals()
,hashCode()
,toString()
,copy()
等方法的POJO
:
data class Customer(val name: String, val email: String, val company: String)
虽然 Java8 中引入了 lambda 表达式,但是由于类库兼容性等问题,我们的一些老项目还在使用旧版本的 JDK。而 Kotlin 提供了 lambda 表达式支持而只需使用 JDK6 版本。下面的代码使用 lambda 表达式过滤List
:
val positiveNumbers = list.filter {it > 0}
极简的单例模式:
代码语言:javascript复制object ThisIsASingleton {
val companyName: String = "JetBrains"
}
2、安全——避免整个类的错误,如空指针异常
摆脱那些讨厌的 NullPointerExceptions 可能导致十亿美元损失的错误。
代码语言:javascript复制var output : String
output = null
Kotlin可以保护您免受对可空类型的误操作,包括来自Java的类型。
代码语言:javascript复制println(output.length())
如果你检查一个对象的类型是否是某个类型,编译器会自动转换该对象为您检查的类型。
代码语言:javascript复制fun calculateTotal(obj: Any) {//这里的 Any 相当于 Java 中的 Object
if (obj is Invoice) {
obj.calculateTotal()
}
}
3、多用途——支持多中类型的应用程序
多用途语言允许您构建任何类型的应用程序:
- Android开发。 没有性能影响。运行时非常小。
- 服务器应用 100%兼容所有JVM框架。
- JavaScript 在Kotlin中编写代码,并转换为 JavaScrip 在 Node.js 或浏览器中运行。
- 企业 使用Kotlin进行任何类型的企业Java EE开发。
- 网页 无论您是要强制类型的HTML,CSS构建器还是简单的Web开发。
- 其他所有(ios、嵌入式等等)
Kotlin/Native 在2017年4月份推出了预览版,并在在官方博客中描述了对
Kotlin/Native
的美好愿景。 Kotlin/Native 使用LLVM编译器基础架构生成机器代码。在这个预览中,我支持以下目标平台:- Mac OS X 10.10及更高版本(x86-64)
- x86-64 Ubuntu Linux(14.04,16.04及更高版本),其他Linux版本也可以正常工作
- 苹果iOS(arm64),在MacOS X主机上交叉编译
- Raspberry Pi,在Linux主机上交叉编译
博客中提到后期还要加入:
- iOS应用程序(使用Android重用代码)
- 嵌入式系统/ IoT(例如,Arduino及其以外)
- 数据分析与科学计算
- 服务器端和微服务器(低占用性、可执行,利用协同程序的功能)
- 游戏开发
4、可互操作——100%兼容 Java 从而可利用已有代码及 JVM 类库
在 Kotlin 代码中随意创建 Java 对象、使用已有 Java 代码
代码语言:javascript复制import io.netty.channel.ChannelInboundMessageHandlerAdapter
import io.netty.channel.ChannelHandlerContext
public class NettyHandler: ChannelInboundMessageHandlerAdapter<Any>() {
public override fun messageReceived(p0: ChannelHandlerContext?, p1: Any?) {
throw UnsupportedOperationException()
}
}
或者使用 JVM 上的任何现有库,因为 Kotlin 对 Java 有100%的兼容性,包括SAM支持。
指定 JVM 或 JavaScript。在Kotlin编写代码,并选择你要部署到哪里。
代码语言:javascript复制import js.dom.html.*
fun onLoad() {
window.document.body.innerHTML = "<br/>Hello, Kotlin!"
}
5、多工具支持——自由选择命令行编译器或一级IDE支持
Kotlin目前提供了四种编写方式:
- 命令行编译工具
- 在线编辑 Try Kotlin
- Eclipse
- IntelliJ IDEA
其中 IntelliJ IDEA 提供了对 Kotlin 最新功能的支持,也是 Kotlin 最智能的编辑器。
前景如何?
目前 花瓣、豆瓣 APP 以及 JetBrains 全线编辑器都在使用 Kotlin,国内很多初创公司也都在使用 Kotlin(尤其是用于 Android 开发)大家可以参考下 哪一些大公司在使用 kotlin 开发应用? Kotlin 被业内称之为 Android 的 Swift ,从这个称呼中大家也能感觉到开发者对 Kotlin 的喜爱程度了吧。Spring Framework 5.0 也提供了对 Kotlin 支持可以看出 Kotlin 在服务端以及移动端都有较好的发展。