Kotlin数据类

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

java 复制代码
//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 复制代码
//Kotlin数据类实现
data class Phone(val brand: String, val price: Double)
/*解释:当在一个类前面声明了data关键字时,就表明这是一个数据类
Kotlin会根据主构造函数中参数为你自动生成equals()、hashCode()、toString()
等固定格式且无实际逻辑意义的函数*/
相关推荐
ss2735 分钟前
线程池工作机制:从任务提交到执行的完整决策流程
java·开发语言
syt_101313 分钟前
js基础之-如何理解js中一切皆对象的说法
开发语言·javascript·原型模式
yaoxin52112316 分钟前
276. Java Stream API - 使用 flatMap 和 mapMulti 清理数据并转换类型
java·开发语言·windows
lsx20240626 分钟前
Chart.js 极地图
开发语言
爱吃山竹的大肚肚34 分钟前
在Java中,从List A中找出List B没有的数据(即求差集)
开发语言·windows·python
weixin_4624462336 分钟前
【原创实践】Python 将 Markdown 文件转换为 Word(docx)完整实现
开发语言·python·word
企微自动化39 分钟前
企业微信二次开发:深度解析外部群主动推送的实现路径
java·开发语言·企业微信
我的offer在哪里1 小时前
c++的回调函数
开发语言·c++
一棵开花的树,枝芽无限靠近你1 小时前
【face-api.js】2️⃣ NetInput - 神经网络输入封装类
开发语言·javascript·神经网络
yongche_shi1 小时前
第九十九篇:Python在其他领域的应用:游戏开发、物联网、AIoT简介
开发语言·python·物联网·游戏开发·aiot