Sobes.tech
Junior

Lombok kutubxonasi nima?

sobes.tech AI

AIdan javob

Lombok Java kutubxonasi bo'lib, u anotatsiyalar yordamida shablon kodini (getterlar, setterlar, equals, hashCode, toString, konstruktorlar va boshqalar) avtomatik ravishda yaratishga imkon beradi, bu kodning ko'p so'zli bo'lishini kamaytiradi va uni o'qilishi osonroq qiladi.

Asosiy anotatsiyalar:

  • @Getter / @Setter: getterlar va setterlarni yaratadi.
  • @ToString: toString metodini yaratadi.
  • @EqualsAndHashCode: equals va hashCode metodlarini yaratadi.
  • @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor: turli xil konstruktorlarni yaratadi.
  • @Data: @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode ni birlashtiradi.
  • @Builder: ob'ektlarni yaratish uchun fluant API taqdim etadi.

Foydalanish misoli:

// Lombok importlari
import lombok.Data;
import lombok.Builder;

// @Data anotatsiyasi getterlar, setterlar,
// majburiy argumentlar bilan konstruktor va toString, equals va hashCode metodlarini avtomatik yaratadi.
@Data
// @Builder anotatsiyasi ob'ektlarni yaratishda Builder naqshini ishlatishga imkon beradi.
@Builder
public class User {

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

    // Lombok avtomatik ravishda quyidagilarni yaratadi:
    // getId(), setId(Long id)
    // getName(), setName(String name)
    // getAge(), setAge(int age)
    // konstruktor(Long id, String name, int age) - agar barcha maydonlar final bo'lsa yoki @RequiredArgsConstructor final maydonlar bilan ishlatilsa
    // toString()
    // equals()
    // hashCode()

    // Builder dan foydalanish misoli:
    // User user = User.builder()
    //                .id(1L)
    //                .name("Alice")
    //                .age(30)
    //                .build();
}

Afzalliklari:

  • Kod hajmini qisqartiradi.
  • Kodning o'qilishi yaxshilanadi.
  • Shablon kod yozishda xato qilish ehtimolini kamaytiradi.

Kamchiliklari:

  • IDE bilan integratsiya talab qiladi.
  • Yaratilgan kod to'g'ridan-to'g'ri ko'rinmaydi, shuning uchun debugging qiyinlashishi mumkin.