Kotlin是JetBrains开发的针对JVM、Android 和浏览器的静态编程语言。
JetBrains,作为目前广受欢迎的 Java IDE IntelliJ IDEA 的开发商,在 Apache 许可下已经开源其Kotlin 编程语言。JetBrains 作为最智能的 Java IDE 的开发商,对 Java 的了解是毋庸置疑的,在使用 Java 过程中,JetBrains 的工程师们发现了大量的问题,为了更高效的开发以及解决 Java 中的一些问题,JetBrains 开发了致力于替代 Java 的 Kotlin。
使用一行代码创建一个包含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}
极简的单例模式:
object ThisIsASingleton {
val companyName: String = "JetBrains"
}
摆脱那些讨厌的 NullPointerExceptions 可能导致十亿美元损失的错误。
var output : String
output = null
Kotlin可以保护您免受对可空类型的误操作,包括来自Java的类型。
println(output.length())
如果你检查一个对象的类型是否是某个类型,编译器会自动转换该对象为您检查的类型。
fun calculateTotal(obj: Any) {//这里的 Any 相当于 Java 中的 Object
if (obj is Invoice) {
obj.calculateTotal()
}
}
多用途语言允许您构建任何类型的应用程序:
Kotlin/Native
的美好愿景。
Kotlin/Native 使用LLVM编译器基础架构生成机器代码。在这个预览中,我支持以下目标平台:
博客中提到后期还要加入:
在 Kotlin 代码中随意创建 Java 对象、使用已有 Java 代码
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编写代码,并选择你要部署到哪里。
import js.dom.html.*
fun onLoad() {
window.document.body.innerHTML += "<br/>Hello, Kotlin!"
}
Kotlin目前提供了四种编写方式:
其中 IntelliJ IDEA 提供了对 Kotlin 最新功能的支持,也是 Kotlin 最智能的编辑器。
目前 花瓣、豆瓣 APP 以及 JetBrains 全线编辑器都在使用 Kotlin,国内很多初创公司也都在使用 Kotlin(尤其是用于 Android 开发)大家可以参考下 哪一些大公司在使用 kotlin 开发应用? Kotlin 被业内称之为 Android 的 Swift ,从这个称呼中大家也能感觉到开发者对 Kotlin 的喜爱程度了吧。Spring Framework 5.0 也提供了对 Kotlin 支持可以看出 Kotlin 在服务端以及移动端都有较好的发展。