Tartalomjegyzék

< Java

Java - Record

Bevezetés

A Java 14-ben bevezették a Record kulcsszót.

Nem változtatható adatok, objektumok közötti mozgatására szokás használni.

A record nélkül

Hozzunk létre egy Employee osztályt, a következő követelményekkel:

Employee.java
class Employee {
    private final String name;
    private final String city;
    private final double salary;
 
    public Employee(String name, String city, double salary) {
        this.name = name;
        this.city = city;
        this.salary = salary;
    }
 
    @Override
    public int hasCode() {
        return Objects.hash(name, city, salary);
    }
 
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }else if (!(obj instanceof Employee) {
            return false;
        }else {
            Employee emp = (Employee) obj;
            return Objects.equals(name, emp.name)
                && Objects.equals(city, emp.city)
                && Objects.equals(salary, emp.salary
        }
    }
 
    @Override
    public String toString() {
        return "Employee [name=" + name +
        ", city=" + city +
        ", salary=" + salary + "]";
    }
 
    // Ide jönnek a szabványos elérők
}

A record

Most nézzük meg a fenti kódot „record”-dal:

public record Employee (String name, String city, double salary) {}

Konstruktor

A record létrehoz egy konstruktort, de kiegészíthetjük más konstruktorral, aminek más aláírása lesz.

public record Employee (String name, String city, double salary) {
    public Employee(String name) {
        Objects.requireNonNull(name);
    }
}

Statikus tagok

A record-ba felvehetünk statikus adattagot és metódust is.

public record Employee (String name, String city, double salary) {
    public static double MAX_SALARY=500;
}