< Java

Java - Record

Szerző: Sallai András

Copyright © 2023, Sallai András

Szerkesztve: 2023

Licenc: CC BY-SA 4.0

Web: https://szit.hu

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:

private mezők, final módosítókkal

minden mező beállítható a konstruktoron keresztül

felülírjuk az equals() metódust

felülírjuk a hashCode() metódust

felülírjuk a toString() metódust

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; }