从Android7.0开始,谷歌使用的API从OracleJDK转为开放JDK,这对谷歌来说是一个艰难的决定。对于开发者来说,他们非常兴奋,这意味着长期官司可能结束,Android系统开发可以回归正常轨道,继续为全球Android用户带来惊喜。Kotlin语言有什么优点?Kotlin语言被誉为Android世界的Swift。简而言之,可以概括为:完全兼容JavaNullsafe支持lambda表达式(优于Java8)支持扩展体验一致的开发工具链使用Kotlin对Android开发者意味着什么?使用Kotlin进行Android开发有以下好处:更少的空指针异常更小的代码量更快的开发速度更一致的开发体验支持Android开发,提供一系列Android开发插件。由于JetBrains的天然优势(AndroidStudio是在JetBrains开发的IDE中加入一些插件而形成的),AndroidStudio也原地支持Kotlin语言。看看Kotlin语言给我们带来了什么。NullSafe空指针异常确实是困扰Java程序员多年的问题。Swift语言巧妙地解决了这个问题。Kotlin使用相同的解决方案,但语法不同。下面和Java语言做个简单的对比:JavaRoomroom=...;if(null!=room&&null!=room.window){room.window.open();}Kotlinvalroom:Room?=...room?。window?.open()根据常识,我们知道一个房间可能有也可能没有窗户。如果没有窗口,调用open方法自然会引发空指针异常。Java语言的处理方式是在调用方法前进行空值判断,而Kotlin语言使用的是?操作员控制,意思是,如果?如果前面的对象为空,则直接返回空值,不执行后面的语句。它有一个专业的名字:OptionalValue(可选值)相比Java语言,Kotlin语言的处理方式要简单很多,更重要的是:妈妈再也不用担心我程序中的空指针异常了-_-小心读者应该能发现Kotlin语言也去掉了分号,这也和Swift语言的处理方式一致。关于OptionalValue的具体用法,后面我会用一个章节来给大家讲解。请期待我的Kotlin语言系列教程。Function在Kotlin语言中,类终于不再是一等公民。Kotlin语言开始支持面向过程的编程。在Kotlin语言中,可以声明全局函数、内联函数等。也支持函数嵌套,函数可以作为方法参数。对于一些简单的操作,创建一个新的类来处理有时会让人头疼。Kotlin语言终于让我们摆脱了这种尴尬局面。下面来看看函数声明的简单写法,和Java语言JavapublicStingsayHello(Stringname){return"Hello,"+name;}KotlinfunStringsayHello(name:String?):String{return"Hello,$name"}函数的写法就大不一样了。Kotlin语法类似于Swift语言的写法。每个函数都必须使用fun关键字声明。参数类型后跟参数名称。适应过程。同样,我会在后面的文章中专门讲解Kotlin的函数。Lambdas闭包应该是Java程序员非常期待的一个特性,幸运的是Java8已经开始支持这个特性了。两者很相似,我们用Java8的闭包Java8interfaceSum{intadd(intx,inty);}Sumsum=(x,y)->x+yKotlinvalsum:(Int,Int)->Int={x,y做个简单对比->x+y}可见两者的语法非常相似,同样支持类型推导和缩写;不同的是,由于Java语言完全面向对象的特性,闭包必须和接口一一对应。由于Kotlin语言天然支持函数式编程,所以可以直接在参数中使用,无需声明相应的接口。扩展这是我最喜欢的功能之一,Kotlin语言支持扩展现有类。Java程序员对这个特性应该比较陌生,这也是Swift语言的特性之一。所谓扩展,就是在不使用继承的情况下,对已有的类增加新的方法、属性等操作。扩展不会破坏已有的类方法,只是在使用时动态添加。应记住一个原则:扩展优于继承,Java语言不支持此功能。KotlinfunMutableList
