Kotlin - Data Class

2019-11-17  本文已影响0人  galaxy_zheng

(翻译)

学习 Kotlin - Data Class

数据类

我们经常创建一个类来保存数据。在这样的类中,一些标准功能常常可以从数据中得到。在Kotlin中,这被称为数据类,并被标记为数据。

Example

在Java中

public class Developer {

    private String name;
    private int age;

    public Developer(String name, int age) {
        this.name = name;
        this.age = 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;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Developer developer = (Developer) o;

        if (age != developer.age) return false;
        return name != null ? name.equals(developer.name) : developer.name == null;

    }

    @Override
    public int hashCode() {
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + age;
        return result;
    }

    @Override
    public String toString() {
        return "Developer{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

在 Kotlin 中

data class Developer(val name: String, val age: Int)

当我们将一个类标记为一个数据类时,您不必像在Java中那样实现或创建以下函数。

编译器会自动在内部创建这些代码,因此也会产生干净的代码。

虽然,数据类需要满足的需求很少:

因此,当您遇到这些情况时,请使用data class。


(原文)

Learn Kotlin - Data Class

Data Class

We frequently create a class to do nothing but hold data. In such a class some standard functionality is often mechanically derivable from the data. In Kotlin, this is called a data class and is marked as data.

Example

In Java

public class Developer {

    private String name;
    private int age;

    public Developer(String name, int age) {
        this.name = name;
        this.age = 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;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Developer developer = (Developer) o;

        if (age != developer.age) return false;
        return name != null ? name.equals(developer.name) : developer.name == null;

    }

    @Override
    public int hashCode() {
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + age;
        return result;
    }

    @Override
    public String toString() {
        return "Developer{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

In Kotlin

data class Developer(val name: String, val age: Int)

When we mark a class as a data class, you don’t have to implement or create the following functions like we do in Java.

The compiler automatically create these internally, so it also leads to clean code.

Although, there are few requirements that data classes need to fulfil:

So whenever you get these situations, use data class.


原文链接:https://blog.mindorks.com/learn-kotlin-data-class

上一篇 下一篇

猜你喜欢

热点阅读