Sobes.tech
Junior

Lombok kitabxanası nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Lombok Java kitabxanasıdır və anotasiya vasitəsilə avtomatik olaraq şablon kodu (getterlər, setterlər, equals, hashCode, toString, konstruktorlar və s.) yaradır, bu da kodun çox sözlü olmasını azaldır və onu daha oxunaqlı edir.

Əsas anotasiya nümunələri:

  • @Getter / @Setter: getter və setterlər yaradır.
  • @ToString: toString metodunu yaradır.
  • @EqualsAndHashCode: equalshashCode metodlarını yaradır.
  • @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor: müxtəlif növ konstruktorlar yaradır.
  • @Data: @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode-u birləşdirir.
  • @Builder: obyektlərin yaradılması üçün axıcı API təmin edir.

İstifadə nümunəsi:

// Lombok idxalları
import lombok.Data;
import lombok.Builder;

// @Data anotasiya getterlər, setterlər,
// zəruri arqumentlərlə konstruktor və toString, equals və hashCode metodlarını avtomatik yaradır.
@Data
// @Builder anotasiya obyektlərin yaradılmasında Builder şablonundan istifadə etməyə imkan verir.
@Builder
public class User {

    private Long id;
    private String name;
    private int age;

    // Lombok avtomatik olaraq aşağıdakıları yaradacaq:
    // getId(), setId(Long id)
    // getName(), setName(String name)
    // getAge(), setAge(int age)
    // konstruktor(Long id, String name, int age) - bütün sahələr finaldırsa və ya @RequiredArgsConstructor final sahələrlə istifadə olunursa
    // toString()
    // equals()
    // hashCode()

    // Builder istifadə nümunəsi:
    // User user = User.builder()
    //                .id(1L)
    //                .name("Alice")
    //                .age(30)
    //                .build();
}

Üstünlüklər:

  • Kodun həcmini azaldır.
  • Kodun oxunaqlığını artırır.
  • Şablon kodu yazarkən səhv ehtimalını azaldır.

Çatışmazlıqlar:

  • IDE ilə inteqrasiya tələb edir.
  • Yaradılan kod birbaşa görünmədiyi üçün debugging çətinləşə bilər.