[JAVA] Notes d'opération @Getter @Setter de Lombok

introduction

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.

À propos de Lombok

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.

Entraine toi

Utilisons-le maintenant.

Lorsque vous souhaitez créer un getter ou un setter pour un champ spécifique

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. image.png

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.

Si vous souhaitez créer des getters et des setters pour tous les champs de la classe

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. image.png

La vérification d'opération est omise.

Si vous souhaitez créer un getter dans tous les champs et un setter dans certains champs

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;
}

image.png

Comme vous l'avez spécifié, le setter est créé uniquement dans ʻid`.

Si vous ne souhaitez pas créer des getters et des setters pour certains champs

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;
}

image.png

Comme vous pouvez le voir, le getter et le setter avec ʻAccessLevel.NONE` spécifié n'ont pas été créés.

Si vous souhaitez modifier le comportement du getter et du setter par défaut

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. image.png

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.

Résumé

référence

Recommended Posts

Notes d'opération @Getter @Setter de Lombok
Mémo d'opération Docker
Mémo d'accélération du calcul des bits
résolution d'erreur du getter java setter
Note personnelle Annotation typique de Lombok
Génération automatique de constructeur, getter / setter