getter/setter to Kotlin 属性

作者:袖梨 2026-06-19

getter/setter → Kotlin 属性

老写法(Java)

 复制代码public class User {
    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; }
}// 使用
user.setName("张三");
String name = user.getName();

新写法(Kotlin)

 复制代码class User {
    var name: String = ""
    var age: Int = 0
}// 使用
user.name = "张三"
val name = user.name

一句话注意

Kotlin 里声明 var 自动生成 getter/setter(val 只生成 getter)。直接通过 .name 访问,底层调用的是自动生成的 getName()/setName(),和 Java 的 getter/setter 对完全相同。所以 Retrofit 等框架用同样的方式解析字段名,不会出问题。

getter/setter → Kotlin 属性

自定义 getter/setter 也支持:

 复制代码var displayName: String = ""
    get() = if (field.isEmpty()) "未命名" else field
    set(value) { field = value.trim() }

field 是背后的实际存储字段,只在 getter/setter 中可见。


Java Android 老项目迁移系列,持续更新中。

相关文章

精彩推荐