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

Kotlin数据类

在一个规范的系统架构中,数据类通常占据着非常重要的的角色,它们用于将服务器端或数据库中的数据映射到内存中,为编程逻辑提供数据模型的支持;数据类通常需要重写equals()、hashCode()、toString()方法。(hashCode()方法作为equals()的配套方法,需要一同重写,否则会导致HashMap、HashSet等Hash相关的系统类无法正常工作)

//Java数据类实现
public class Phone {
    String brand;
    double price;

    public Phone(String brand, double price) {
        this.brand = brand;
        this.price = price;
    }

    @override
    public boolean equals(Object obj) {
        if(obj instanceof Phone) {
            Phone other = (Phone) obj;
            return other.brand.equals(brand) && other.price == price;
        }
        return false;
    }

    @override
    public int hashCode() {
        return brand.hashCode() + (int) price;
    }

    @override
    public String toString() {
        return "Phone(brand=" + brand + ", price=" + price + ")";
    }
}
//Kotlin数据类实现
data class Phone(val brand: String, val price: Double)
/*解释:当在一个类前面声明了data关键字时,就表明这是一个数据类
Kotlin会根据主构造函数中参数为你自动生成equals()、hashCode()、toString()
等固定格式且无实际逻辑意义的函数*/


http://www.kler.cn/a/511267.html

相关文章:

  • AIGC视频生成模型:Runway的Gen系列模型
  • C#中System.Text.Json:从入门到精通的实用指南
  • 优化大型语言模型的表达能力和依赖关系:理论
  • 【js进阶】设计模式之单例模式的几种声明方式
  • Scade 表达式 - 迭代器
  • PHP基础(上)
  • VUE学习笔记(入门)5__vue指令v-html
  • 供应链系统设计-供应链中台系统设计(八)- 商品中心设计篇
  • 网络安全VS数据安全
  • Springboot 注解缓存使用教程
  • 【华为路由/交换机的ssh远程设置】
  • SDL2基本的绘制流程与步骤
  • Rocky Linux 安装redmine记录
  • IDEA 内置的 Spring Initializr 创建 Spring Boot 新项目时无法使用JDK8?
  • 【Rust自学】13.6. 迭代器 Pt.2:消耗和产生迭代器的方法
  • React实现拖拽特效
  • QT入门的一些吐槽
  • 二叉树02(数据结构初阶)
  • Go语言的文件操作
  • 【K8S系列】K8s 领域深度剖析:年度技术、工具与实战总结