Mis on Lomboki raamatukogu ja kuidas seda Java arenduses kasutatakse?
sobes.tech AI
Vastus AI-lt
Lombok on Java teek, mis aitab vähendada šablonikoodi (boilerplate code) hulka. See teeb seda automaatselt, genereerides meetodeid nagu konstruktorid, getterid, setterid, equals(), hashCode() ja toString() meetodid kompileerimise ajal, kasutades annotatsioone.
Peamised annotatsioonid ja nende kasutus:
@Getter/@Setter: genereerivad getX() ja setX() meetodid klassi väljadele.@NoArgsConstructor,@RequiredArgsConstructor,@AllArgsConstructor: genereerivad ilmaargumentidega konstruktorid, konstruktorid kõigi@NonNullvõi final märgitud väljadega ning vastavalt kõigi väljadega konstruktorid.@Data: ühendab@ToString,@EqualsAndHashCode,@Getter,@Setterja@RequiredArgsConstructor. Kasulik mudelklassi jaoks.@Value: sarnane@Data, kuid muudab klassi muutumatuks (final). Kõik väljad on vaikimisi private final.@Builder: genereerib "Ehitaja" muster koodi, mis lihtsustab objektide loomist paljude väljadega.@Slf4j(ja teised loggimise raamatukogud): loob staatilise loggija välja (log) klassis.
Näide @Data kasutamisest:
// Kasutaja mudel ilma Lombokita
public class UserManual {
private String username;
private String email;
public UserManual(String username, String email) {
this.username = username;
this.email = email;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "UserManual{" +
"username='" + username + '\'' +
", email='" + email + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
UserManual that = (UserManual) o;
if (username != null ? !username.equals(that.username) : that.username != null) return false;
return email != null ? email.equals(that.email) : that.email == null;
}
@Override
public int hashCode() {
int result = username != null ? username.hashCode() : 0;
result = 31 * result + (email != null ? email.hashCode() : 0);
return result;
}
}
// Kasutaja mudel Lomboki abil
import lombok.Data;
@Data
public class UserLombok {
private String username;
private String email;
// Getterid, setterid, konstruktorid, equals, hashCode, toString
// genereeritakse automaatselt kompileerimise ajal
}
Lomboki kasutamiseks tuleb lisada sõltuvus ehitussüsteemi (Maven või Gradle) ja installida IDE plugin, et see saaks õigesti tõlgendada annotatsioone ning pakkuda automaatset koodi täiendust.
Maven:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version> <!-- Kasutage uusimat versiooni -->
<scope>provided</scope>
</dependency>
Gradle:
compileOnly 'org.projectlombok:lombok:1.18.24' // Kasutage uusimat versiooni
annotationProcessor 'org.projectlombok:lombok:1.18.24' // Kasutage uusimat versiooni
Lombok märkimisväärselt vähendab koodimahtu, muudab selle loetavamaks ning vähendab vigu, mis võivad tekkida käsitsi kirjutatud šablonimeetodites. Kuid tuleb meeles pidada, et see varjab osa loogikast, mis mõnikord võib raskendada silumist või genereeritud koodi mõistmist ilma IDE pluginata.