Kotlin ↔ Java 速查表

面向 Java 开发者的 Kotlin 快速参考。左侧是你熟悉的 Java,右侧是等价的 Kotlin。

基础语法

JavaKotlin
final String name = "PICO";val name = "PICO"
int count = 0;var count = 0
String text = null;val text: String? = null
if (x != null) { use(x); }x?.let { use(it) }
str != null ? str.length() : 0str?.length ?: 0
public int add(int a, int b) { return a + b; }fun add(a: Int, b: Int) = a + b
switch(x) { case 1: break; default: }when (x) { 1 -> ...; else -> ... }
for (String s : list) { }for (s in list) { }
list.stream().map(...).collect(...)list.map { ... }.toList()
String.format("x=%d", x)"x=$x" // 字符串模板

类与对象

JavaKotlin
class Foo extends Bar implements Bazclass Foo : Bar(), Baz
@Override public void do() { }override fun do() { }
class Singleton { static Singleton get() { } }object Singleton { }
public static void util() { }companion object { fun util() { } }
new ArrayList<String>()mutableListOf<String>()
instanceofis(且智能转换为该类型)
(Foo) objobj as Foo

PICO SDK 常见模式

模式Kotlin 写法说明
Data Modeldata class X(val a: A, val b: B)自动生成 equals/hashCode/toString/copy
枚举带属性enum class X(val id: Int) { A(1), B(2) }枚举可以直接携带数据
扩展函数fun String.asTitle(): String给已有类添加方法
作用域函数with(scope) { ... }在对象上下文中执行代码
拖尾 Lambdacomposable { ... }最后一个 lambda 参数可写在括号外
函数引用launch(::mainApp):: 把函数作为值传递
Compose UI@Composable fun X() { ... }声明式 UI 构建