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

相关推荐
酷炫码神20 分钟前
MosMos 创意效果与能力边界展示
java
Wang's Blog27 分钟前
Java 接入Redis: 使用Jedis操作Redis
java·服务器·redis
事圆则缓30 分钟前
Java 8 Lambda、Stream、Optional 与 Android 边界:从回调语法到运行时兼容
android·java
shehuiyuelaiyuehao39 分钟前
算法50,分治归并,数组中的逆序对
java·算法
烽学长40 分钟前
(附源码)基于Springboot+vue的图书阅读分享系统的设计与实现
java·spring boot·后端
mmsx43 分钟前
Android 地图十万要素不卡顿:空间网格 + 渐进式加载的移动端实践
android·大数据·opengl
Ivanqhz1 小时前
数据搬运是性能关键
java·服务器·网络·人工智能·深度学习
青山木1 小时前
RocketMQ 入门到原理(三):消息存储原理
java·后端·中间件·架构·rocketmq
MayBaymax1 小时前
Spring AI Alibaba Graph 实战:客服工单智能处理
java·ai·ai编程
光依旧1 小时前
MCP实战手记系列(五):让工具返回一个能点的界面(文末附github源码链接)
java·spring ai·前端集成·mcp·mcp apps