Java-da Record və POJO nədir?
-
Java-da məlumatları modelləşdirmək üçün iki əsas yanaşma var: POJO və Record. Hər ikisi obyektin sahələrini (field) təyin edir, lakin istifadəsi və sintaksisi fərqlidir.
POJO nədir?
POJO — “Plain Old Java Object” ifadəsinin qısaltmasıdır. Bu, heç bir xüsusi kitabxana və ya Java EE xüsusiyyətindən asılı olmayan, sadə Java obyektidir.
Əsas xüsusiyyətlər:
- Sahələr (fields)
- Getter və setter metodları
- Constructor (konstruktor)
toString()
,equals()
,hashCode()
metodlarının override edilməsi (lazım olduqda)
Misal:
public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } @Override public String toString() { return name + " is " + age + " years old"; } }
🧾 Record nədir?
Record — Java 14 ilə tanıdılmış və Java 16-da stabil olmuş yeni xüsusiyyətdir. O, POJO-ların qısa və daha səmərəli variantıdır. Record-lar immutable (dəyişməz) obyektlər yaratmaq üçün nəzərdə tutulub.
Əsas xüsusiyyətlər:
- Final sahələr (dəyişdirilə bilməz)
- Avtomatik olaraq
toString()
,equals()
,hashCode()
metodları yaradılır - Getter-lər avtomatik olaraq ad ilə yaradılır (
name()
,age()
və s.) - Setter yoxdur (dəyəri dəyişmək olmur)
Misal:
public record Person(String name, int age) { }
Bu bir sətrə bərabər
POJO
-nu əvəz edə bilər və avtomatik olaraq aşağıdakıları təmin edir:- Constructor
name()
vəage()
metodlarıtoString()
,equals()
,hashCode()
metodları
POJO vs Record
Xüsusiyyət POJO Record Mutability Dəyişilə bilən (mutable) Dəyişməz (immutable) Kod miqdarı Uzun Qısa və yığcam Getter və Setter Manual yazılır Getter-lər avtomatik, setter yoxdur Java versiyası Java 1.0 və sonrası Java 14+ (eksperimental), 16+ (stabil) Tətbiq sahəsi Mürəkkəb modellər, ORM, vs. Sadə məlumat daşıyıcıları (DTO)
Nəticə
- POJO daha çox konfiqurasiya və çeviklik tələb edən hallarda istifadə olunur.
- Record isə daha çox dəyişməz və sadə məlumat modelləri üçün idealdır.
Əgər məqsədiniz sadəcə məlumatı daşımaqdır və onu dəyişmək ehtiyacınız yoxdursa, Record istifadəsi tövsiyə olunur. Əlavə olaraq
Record
Java proqramlarında DTO (Data Transfer Object) kimi geniş istifadə edilir, xüsusilə REST API-lərdərequest
vəresponse
modellərində çox faydalıdır.
Bilik paylaşdıqca artan bir sərvətdir