当前位置: 首页 > news >正文

class和data class的区别

class和data class的区别

一、核心原理

Kotlin 编译器会为data class自动生成基础方法,这是和普通class的核心差异。

二、核心区别

特性普通 classdata class
equals()比较内存地址,判断是否为同一个对象实例比较所有属性值,判断内容是否完全一致
hashCode()基于内存地址生成基于所有属性值计算生成
主要用途定义对象逻辑、行为、复杂业务专门用于存储数据

三、对 Compose rememberSaveable 状态保存的影响

rememberSaveable+ 路由框架的工作机制类似寄存箱

  1. 保存状态:页面状态会绑定路由对象作为存储标签
  2. 页面重建:Activity 重启后,会反序列化生成新的路由对象
  3. 匹配结果
    • 普通 class:新对象与原对象内存地址不同,匹配失败,状态丢失(恢复初始值)
    • data class:新对象与原对象属性值一致,匹配成功,恢复原有状态

四、代码示例

// 普通 class:== 比较内存地址classUser(valname:String)valu1=User("张三")valu2=User("张三")println(u1==u2)// false// data class:== 比较属性值dataclassDataUser(valname:String)vald1=DataUser("张三")vald2=DataUser("张三")println(d1==d2)// true

五、总结

  1. Activity 重建时,所有对象都会被销毁并重新创建;
  2. 普通 class 依靠内存地址标识,重建后身份失效,状态丢失;
  3. data class 依靠属性值标识,重建后身份不变,状态可正常保存;
  4. 路由参数类、数据模型推荐使用data class
  5. 进阶优化:Parcelable 序列化对象也需要添加data关键字,保证状态保存稳定。
http://www.jsqmd.com/news/655596/

相关文章:

  • Cursor Pro免费激活:3个核心技术突破与5分钟部署指南
  • 2026年第二届亚洲无人系统与智能控制会议 (USIC 2026)
  • STM32+MPU6050实战:5分钟搞定DMP库移植获取欧拉角(附避坑指南)
  • 如何用Python自动化B站视频上传:BilibiliUploader使用指南
  • 浙江镕达生物:专业离心管生产厂家,全规格无菌离心管适配科研与医疗场景 - 品牌推荐大师1
  • Windows 一键部署 OpenClaw 保姆级教程|10 分钟搭建本地 AI 智能体,全程零配置
  • 使用工具在 Windows 11/10/8/7 中扩展 C 盘的 3 种免费方法
  • STM32实战:手把手教你调试LIN总线通讯(逻辑分析仪抓包与常见故障排查)
  • LLM生成代码准确率仅68%?揭秘头部科技公司内部验证的4层校验机制与SOP模板
  • FINN实战:从Docker环境到FPGA部署的完整指南
  • Android驱动工程师深度解析:从开发实践到面试指南
  • 实验室必备设备推荐:小动物活体成像系统哪家生产商更值得信赖? - 品牌推荐大师
  • BaiduPCS-Go上传性能优化:7个关键配置提升大文件传输效率
  • 如何用Smithbox游戏修改工具打造个性化游戏体验
  • AnimateDiff避坑指南:解决视频闪烁/面部扭曲/生成失败的7个常见问题(附排查流程图)
  • STM32F030 IAP实战:当你的Cortex-M0没有VTOR寄存器时,如何让中断‘听话’?
  • py每日spider案例之某website影视链接获取(无加密)
  • ADC版图实战:从天线错误到DRC清零的惊险调试
  • 3步解锁CaptfEncoder V3:网络安全工具套件的极速上手指南
  • 实验室/小型工业用冷水机,哪家做得比较扎实?求推荐 - 品牌推荐大师
  • 从人工智能愿景到大规模应用智能:Sia达成新里程碑,其代理商店代理数量突破800个
  • 大疆汪滔十年蜕变,一个理想主义者的现实转身
  • 3分钟掌握微信QQ消息防撤回技巧:开源工具RevokeMsgPatcher完整指南
  • 3步掌握英雄联盟回放分析:免费开源工具ROFL播放器完整指南
  • 避开这3个坑,你的ESP32音乐频谱灯效果才能更流畅(FFT采样与灯效优化心得)
  • 男儿立世,当有一身的本领,见贤思齐的谦逊,这句你觉得怎么样
  • 保姆级教程:在Ubuntu 20.04上一步步配置ROS Noetic的move_base和amcl导航栈
  • 2026杭州婚纱摄影实力排行榜八大品牌|备婚新人零踩坑全指南 - 江湖评测
  • CSDN 自动化发布验证 2026-04-16 18:40
  • 阿里云/腾讯云安全组配置避坑指南:手把手教你用frp 0.44.0搭建内网穿透服务