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 老项目迁移系列,持续更新中。

相关推荐
booboosui6 分钟前
Android 悬浮窗藏不住自己:一个标志位与 140 毫秒
android
传奇开心果11 分钟前
【Flutter踩坑排雷】第5课:扩展方法冲突坑|同名扩展引发编译歧义,故障规避手段
android·flutter
文丑颜不良啊16 分钟前
LeetCode2081~2100题目解析
java·leetcode
玖米GEO运营王总监38 分钟前
2026年账号矩阵协同效应怎么量化:三个指标与公式结构
java·大数据·数据库
叼烟扛炮2 小时前
[LangChain] 学习笔记(03):打破失忆症——对话机制与上下文管理
java·前端·javascript·笔记·学习·langchain
文丑颜不良啊2 小时前
LeetCode2061~2080题目解析
java·leetcode
特立独行的猫A3 小时前
13MB 单文件、一条命令变服务:把仓颉写的 cjh 内嵌进你的应用,当它的 AI 大脑
java·后端·python
.痞老板.3 小时前
mysql初阶--数据类型
android·数据库·mysql
StarsGreen3 小时前
Android 启动流程详解
android·linux·单片机·嵌入式硬件
Brookty3 小时前
Java博客项目实战|工程环境与构建:工程目录、PowerShell命令调用与JDK/IDEA/Maven工作机制
java·项目实战