Kotlin简介
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。
Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。
Kotlin的优点
- 简洁: 大大减少样板代码的数量。
- 安全: 避免空指针异常等整个类的错误。
- 互操作性: 充分利用 JVM、Android 和浏览器的现有库。
- 工具友好: 可用任何 Java IDE 或者使用命令行构建。
为什么要学习Kotlin
- Java被Oracle收购后,Oracle出于商业的考虑,Java受到越来越多的限制,而且有消息透露Java未来将对开发者收费
- Kotlin已经被JetBrains开源
- Kotlin成为Android官方开发语言,可见Kotlin已被Goolge列为重点发展对象
- Kotlin语言本身的特性:简洁、安全、互操作性,尤其是跟Java的互操作性上,使得我们可以毫无障碍的使用原有的java库
- 你就不想跟随技术的脚步,做一个技术达人吗
Kotlin初体验
盗个Android官网的图,What does Kotlin code look like?
Android中使用Kotlin
下面以新建Android项目为例,看看怎么在Android中使用Kotlin,揭开她的神秘面纱。
新建项目时勾选Include Kotlin support
Project/build.gradle配置变化
buildscript {
ext.kotlin_version = '1.2.61'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" //添加了Kotlin编译插件
}
}
app/build.gradle配置变化
apply plugin: 'com.android.application'
//使用Kotlin插件
apply plugin: 'kotlin-android'
//使用Kotlin Android扩展插件
apply plugin: 'kotlin-android-extensions'
android {
......
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" //添加Kotlin 标准库
}
在Android Studio中,按照设置向导新建一个项目,最终会生成一个只显示Hello World!的界面,看看这个简单的Acticity代码:
package com.example.kotlin
import android.app.Activity
import android.os.Bundle
class MainActivity : Activity() { //继承
override fun onCreate(savedInstanceState: Bundle?) { //方法定义和参数声明
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)// 所有的语句结束都没有分号;
}
}
是不是发现了一些Kotlin跟java不一样的地方
Android studio中将现有Java代码转换为Kotlin代码
打开一个Java文件并选择 Code > Convert Java File to Kotlin File。
或新建一个Kotlin 文件(File > New > Kotlin File/Class),然后将 Java 代码粘贴到该文件,出现提示时,点击 Yes,将此代码转换为 Kotlin 代码。 您可以勾选 Don’t show this dialog next time,以便将 Java 代码段转储到 Kotlin 文件中。
下面以一个简单的javaBean为例,对比下,Java代码和转换后的Kotlin代码的差异。
Java代码:
package com.example.kotlin;
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
转换后的Kotlin代码:
package com.example.kotlin
class Student {
var name: String? = null
var age: Int = 0
}
通过对比,代码确实精简了不少,可以少些不少代码哩!
Kotlin后续学习
通过上面的介绍,如果你是Android开发者,已经可以在Android项目开始kotlin之旅了,需要的只是对Kotlin语法和特性的慢慢熟悉。这里给大家推荐几个入门学习的资料:
-
Kotlin官网教程:https://kotlinlang.org/docs/tutorials/
-
Kotlin教程|菜鸟教程:http://www.runoob.com/kotlin/kotlin-tutorial.html
-
Android开发者官网Kotlin:https://developer.android.com/kotlin/
-
Android快速转战Kotlin教程:https://blog.youkuaiyun.com/github_33304260/article/details/80343514
最后的话
我还是想最后声援一下,Kotlin可以赶快学起来,用起来了,已经推出一年多了,这是Android开发的未来趋势,我们退无可退,就像前几年Android studio上位,eclipse谢幕一样,必须提前做好准备。