Ceci est un mémo du résultat de la vérification d'opération se concentrant sur «@ Getter» et «@ Setter» de Lombok.
Je n'écrirai pas sur la façon d'installer Lombok et comment utiliser des annotations autres que @ Getter
et @ Setter
, alors voyez ce que d'autres personnes ont mis ensemble.
Avant d'entrer dans le sujet principal, je vais expliquer brièvement Lombok.
Lombok est une bibliothèque qui génère automatiquement des méthodes telles que getter
, setter
et toString
en utilisant des annotations spécifiques.
Vous pouvez réduire la quantité de descriptions telles que les objets POJO au stade du développement. Il se peut que peu de gens écrivent eux-mêmes des getters et des setters de nos jours, mais les ** fautes d'orthographe ** peuvent être éliminées car elles sont générées automatiquement.
Utilisons-le maintenant.
Dans ce cas, ajoutez @ Getter
et @ Setter
aux champs pour lesquels vous souhaitez créer des getters et des setters.
Product.java
import lombok.Getter;
import lombok.Setter;
public class Product {
@Getter
@Setter
private long id;
@Getter
private String name = "Souris";
}
Si vous vérifiez le contour, vous pouvez voir que le getter et le setter spécifiés pour le champ ont été créés.
Vérifiez si cela fonctionne réellement.
public static void main(String[] args) {
Product product = new Product();
product.setId(1L);
System.out.println(product.getId());
System.out.println(product.getName());
}
console
1
Souris
Vous pouvez voir que chacun fonctionne correctement comme ça.
Auparavant, nous donnions les champs @ Getetter
et @ Setter
, mais dans ce cas, nous donnons la classe @ Getetter
et @ Setter
.
Product.java
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Product {
private long id;
private String name;
}
Vous pouvez voir que des getters et des setters ont été créés pour tous les champs de la classe.
La vérification d'opération est omise.
Dans ce cas, annotez la classe si vous souhaitez l'appliquer à tous les champs et annotez le champ si vous souhaitez l'appliquer à certains champs.
Product.java
import lombok.Getter;
import lombok.Setter;
@Getter
public class Product {
@Setter
private long id;
private String name;
}
Comme vous l'avez spécifié, le setter est créé uniquement dans ʻid`.
Spécifiez ʻAccessLevel.NONE si vous voulez créer des getters et des setters pour presque tous les champs de la classe, mais pas pour certains champs. ʻAccessLevel
vous permet de changer les qualificatifs d'accès pour les getters et les setters créés.
Product.java
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Product {
@Getter(AccessLevel.NONE)
private long id;
@Setter(AccessLevel.NONE)
private String name;
}
Comme vous pouvez le voir, le getter et le setter avec ʻAccessLevel.NONE` spécifié n'ont pas été créés.
Au cours du développement, vous rencontrerez un cas où vous souhaitez modifier le comportement des getters et des setters uniquement pour une partie de la classe.
Dans ce cas, implémentez le getter et le setter du champ dont vous souhaitez modifier le comportement.
Cette fois, implémentons uniquement le getter
du champ name
par nous-mêmes.
Product.java
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Product {
private long id;
private String name;
public String getName() {
return "Nom du produit: " + name;
}
}
À partir du contour, l'ordre a changé, mais vous pouvez voir qu'il y a un getter
.
Déplaçons-le de la même manière qu'avant.
public static void main(String[] args) {
Product product = new Product();
product.setId(1L);
product.setName("clavier");
System.out.println(product.getId());
System.out.println(product.getName());
}
console
1
Nom du produit:clavier
Vous pouvez voir que le getter implémenté par vous-même s'appelle ainsi.