Kotlin 中的数据类

1 data class

在一个规范的系统架构中,数据类通常占据着非常重要的角色。

在 Java 中,定义一个数据类,通常需要为其中的每一个属性定义 get/set 方法。如果要支持对象值的比较,甚至还要重写 hashCode、equals 等方法,比如:

复制代码
public class CellPhone {
    private String brand;
    private double price;

    public CellPhone() {

    }

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

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        CellPhone cellPhone = (CellPhone) o;
        return Double.compare(cellPhone.price, price) == 0 && brand.equals(cellPhone.brand);
    }

    @Override
    public int hashCode() {
        return Objects.hash(brand, price);
    }

    @Override
    public String toString() {
        return "CellPhone{" +
                "brand='" + brand + '\'' +
                ", price=" + price +
                '}';
    }
}

以上是只有 2 个属性的 Java 数据类,已经有 50 多行代码了,属性越多,代码量也就越大。

在 Kotlin 中引入了 data class 的语法来改善着一情况,data class 就是数据类。 把上面的 Java 代码用 Kotlin 的 data class 来实现,只需要一行代码

data class CellPhone(val brand: String, val price: Double)

相关推荐
小樱花的樱花2 分钟前
C++ new和delete用法详解
linux·开发语言·c++
froginwe113 分钟前
C 运算符
开发语言
BduL OWED32 分钟前
mysql的主从配置
android·mysql·adb
fengfuyao98533 分钟前
低数据极限下模型预测控制的非线性动力学的稀疏识别 MATLAB实现
开发语言·matlab
摇滚侠44 分钟前
搭建前端开发环境 安装 nodejs 设置淘宝镜像 最简化最标准版本 不使用 NVM NVM 高版本无法安装低版本 nodejs
java·开发语言·node.js
t198751281 小时前
MATLAB十字路口车辆通行情况模拟系统
开发语言·matlab
人需要PID1 小时前
【卡尔曼工具箱-EKF-MATLAB应用】
android
yyk的萌1 小时前
AI 应用开发工程师基础学习计划
开发语言·python·学习·ai·lua
Amumu121382 小时前
Js:正则表达式(一)
开发语言·javascript·正则表达式
亘元有量-流量变现2 小时前
APP自动识别跳转各大应用商店(鸿蒙+iOS+安卓全品牌)|可直接部署落地页源码
android·ios·harmonyos