推荐阅读:
学习Kotlin(一)为什么使用Kotlin
学习Kotlin(二)基本语法
学习Kotlin(三)类和接口
学习Kotlin(四)对象与泛型
学习Kotlin(五)函数与Lambda表达式
学习Kotlin(六)扩展与委托
学习Kotlin(七)反射和注解
学习Kotlin(八)其他技术
Kotlin学习资料总汇
目录
1.什么是Kotlin
2.为什么要选择Kotlin
3.如何使用Kotlin来开发Android
4.与Java的互操作性
0.我认为好用的地方
便于封装:接口的默认方法,免findViewById等
便于调用:扩展函数,when表达式,Lambda表达式等
空安全: ?. ?:
1.什么是Kotlin
谷歌在2017年中举行的I/O开发者大会上宣布,将Kotlin语言作为安卓开发的一级编程语言。Kotlin由JetBrains公司开发,与Java 100%互通,并具备诸多Java尚不支持的新特性。JetBrains在2010年首次推出Kotlin编程语言,并在次年将之开源。Android Studio3.0后的版本会提供对Kotlin的支持。
2.为什么要选择Kotlin
上图来自Kotlin的官网,列举了4个词:
- 简洁举个例子,在AndroidStudio里分别用Kotlin和Java创建下图的模板可以看到,Kotlin一共用了84行,而Java用了101行。由此可得,Kotlin比Java代码量更少,更简洁。如果这个例子不够说服力的话,再举一个。在开发中我们经常用到的实体类,用Java写的话是这样的
class User {
private String name;
public Person(String name) {
this.name = name;
}
public void setName(String name) {
this.name = name;
}
public void getName() {
return name;
}
}
而用Kotlin写是这样的
data class User(var name: String)
没错就是这么简单!
- 安全Kotlin是空安全的,在编译时期就处理了可能会产生空指针的情况,避免了执行代码时出现空指针异常。举个例子:如果用Java中定义一个String可以这样写
String str;//默认为null
如果我们没有给这个str赋值时,可能在其他操作中出现空指针异常。如果用Kotlin这样定义一个String,结果如下图
编译不通过,除非我们这样写
var str: String? = null//如果str为空,则等于null
这样编译才能通过。虽然都为null,但是Kotlin会检查一遍可能产生空指针的地方,能够排除大量的空指针异常。
-
互操作性Kotlin与 Java100% 可互操作,Kotlin的项目可以使用所有的用Java写的代码和库,也可以在一个项目中使用Kotlin和Java两种语言混合编程。
-
工具有好Kotlin和AndroidStudio都是出自JetBrains,工具自然少不了对语言的支持。
3.如何使用Kotlin来开发Android
- 如果你的AndroidStudio版本是3.0之前:
(1).通过 File | Settings | Plugins | Install JetBrains plugin… 搜索并安装 Kotlin 插件。
(2).在根目录的build.gradle中加入
buildscript {
ext.kotlin_version = '1.2.10'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
(3).在app/build.gradle中引入
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
buildscript {
ext.kotlin_version = '1.2.10'
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
完成上面3步即可开始Kotlin之旅
- 如果你的AndroidStudio版本是3.0之后:(1).内置安装 Kotlin 插件(2).新建项目,自动引入Kotlin所需的依赖(3).如果是用AndroidStudio3.0打开之前的项目,参照上面2.3两点
4.与Java的互操作性
- 安装完Kotlin的插件后,可以新建Kotlin File/Class
- Kotlin 在设计时就考虑了 Java 互操作性。可以从 Kotlin 中自然地调用现存的 Java 代码,并且在 Java 代码中也可以很顺利地调用 Kotlin 代码。
- Java代码复制到Kotlin Class里可以转换为Kotlin代码
- Kotlin 插件自带了一个 Java 到 Kotlin 的转换工具,可以把所有Java代码转换成Kotlin代码,转换工具在Code菜单里面的
Convert Java File to Kotlin File
选项
总结
谷歌在2017年中举行的I/O开发者大会上宣布,将Kotlin语言作为安卓开发的一级编程语言。在Android开发中,必将会有越来越多人使用Kotlin来开发。本篇文章标题为《从Java到Kotlin(一)》,后续还有几篇文章作为一个系列,目的是让熟悉Java的人看完后可以马上使用Kotlin进行开发。本篇文章是本系列文章的第一篇,主要简述了 什么是Kotlin 和 为什么要用Kotlin ,Kotlin能写出更简洁的代码,而且Kotlin是空安全的,能杜绝大部分空指针异常。