getter/setter → Kotlin 属性

getter/setter → Kotlin 属性

老写法(Java)

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)

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 复制代码
var displayName: String = ""
    get() = if (field.isEmpty()) "未命名" else field
    set(value) { field = value.trim() }

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


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

相关推荐
Tim_1041 分钟前
【C++】024、new[]与delete[]配对使用
java·开发语言
小黑技术栈1 小时前
Java前端基础到入门——16day
java·开发语言·前端
文人sec1 小时前
MySQL事务与索引做了什么?
android·笔记·mysql
2401_827499991 小时前
C++(黑马)05-提高编程
java·开发语言·c++
卷心菜的学习路2 小时前
基于多模态向量检索的数学相似题推荐系统:完整设计、算法与实验
java·python·算法·大模型·推荐算法·数学相似题
刘洋浪子2 小时前
AndroidStudio保存日志菜单
android
朱涛的自习室2 小时前
从 Prompt 到 Graph:AI 工程的进化史
android·前端·人工智能
豆沙沙包?3 小时前
C++-程序的内存模型(P84-P88)
java·jvm·c++
吴声子夜歌3 小时前
正则指引——匹配原理
java·正则表达式
未秃头的程序猿4 小时前
凌晨3点被叫醒:线上OOM,我用这套流程40分钟定位根因
java·jvm·后端