Sobes.tech
Junior

Mis on Lomboki raamatukogu?

sobes.tech AI

Vastus AI-lt

Lombok on Java teek, mis võimaldab anotatsioonide abil automaatselt genereerida mallkoodi (getterid, setterid, equals, hashCode, toString, konstruktorid jne), vähendada koodi mahtu ja muuta selle kergemini loetavaks.

Peamised anotatsioonid:

  • @Getter / @Setter: genereerivad getterid ja setterid.
  • @ToString: genereerib toString meetodi.
  • @EqualsAndHashCode: genereerib equals ja hashCode meetodid.
  • @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor: genereerivad erinevaid konstruktorid.
  • @Data: ühendab @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode.
  • @Builder: pakub fluent API objektide loomisel.

Näide kasutamisest:

// Lomboki importid
import lombok.Data;
import lombok.Builder;

// @Data annotation genereerib getterid, setterid, kohustuslikud konstruktorid ning toString, equals ja hashCode meetodid.
@Data
// @Builder annotation võimaldab kasutada Builder disainimust objekti loomisel.
@Builder
public class User {

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

    // Lombok genereerib automaatselt:
    // getId(), setId(Long id)
    // getName(), setName(String name)
    // getAge(), setAge(int age)
    // konstruktor(Long id, String name, int age) - kui kõik väljad on final või kasutatakse @RequiredArgsConstructor final väljadega
    // toString()
    // equals()
    // hashCode()

    // Builder kasutamise näide:
    // User user = User.builder()
    //                .id(1L)
    //                .name("Alice")
    //                .age(30)
    //                .build();
}

Eelised:

  • Koodimahu vähendamine.
  • Koodi parema loetavuse saavutamine.
  • Vähendab vigu mallkoodi kirjutamisel.

Miinused:

  • Vajalik IDE integreerimine.
  • Võib lihtsustada silumist, kuna genereeritud kood ei ole otseselt nähtav.