--Une bibliothèque qui génère automatiquement du code fréquemment utilisé tel que getter / setter et constructeurs en Java
@ Getetter
, il générera automatiquement un getter pour les champs de la classe.--Installez le plug-in lombok --Preference-> Plugins-> Rechercher lombok dans MarketPlace et installer
Ajoutez ce qui suit aux dépendances
de build.gradle
build.gradle
compileOnly 'org.projectlombok:lombok:1.18.8'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
delombok
--Lors de la vérification depuis la ligne de commande,java -jar <lombok.chemin du pot> delombok -p <Chemin de classe annoté>
@Getter
/ @Setter
Concédant
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class Human {
private int age;
private String name;
private List<String> hobby;
}
Classe générée
import java.util.List;
public class Human {
private int age;
private String name;
private List<String> hobby;
@java.lang.SuppressWarnings("all")
public int getAge() {
return this.age;
}
@java.lang.SuppressWarnings("all")
public String getName() {
return this.name;
}
@java.lang.SuppressWarnings("all")
public List<String> getHobby() {
return this.hobby;
}
@java.lang.SuppressWarnings("all")
public void setAge(final int age) {
this.age = age;
}
@java.lang.SuppressWarnings("all")
public void setName(final String name) {
this.name = name;
}
@java.lang.SuppressWarnings("all")
public void setHobby(final List<String> hobby) {
this.hobby = hobby;
}
}
@ToString
toString ()
Concédant
import lombok.ToString;
import java.util.List;
@ToString
public class Human {
private int age;
private String name;
private List<String> hobby;
}
Classe générée
import java.util.List;
public class Human {
private int age;
private String name;
private List<String> hobby;
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "Human(age=" + this.age + ", name=" + this.name + ", hobby=" + this.hobby + ")";
}
}
@NoArgsConstructor
/ @RequiredArgsConstructor
/ @AllArgsConstructor
-- @ NoArgsConstructor
: Génère automatiquement un constructeur sans arguments
-- @ RequiredArgsConstructor
: Génère automatiquement un constructeur qui prend un champ avec final comme argument
-- @ AllArgsConstructor
: Génère automatiquement un constructeur avec tous les champs comme arguments
Concédant(@AllArgsConstructor)
import lombok.AllArgsConstructor;
import java.util.List;
@AllArgsConstructor
public class Human {
private int age;
private final String name;
private List<String> hobby;
}
Classe générée
import java.util.List;
public class Human {
private int age;
private final String name;
private List<String> hobby;
@java.lang.SuppressWarnings("all")
public Human(final int age, final String name, final List<String> hobby) {
this.age = age;
this.name = name;
this.hobby = hobby;
}
}
@Data
@Getter
/ @Setter
@ToString
@EqualsAndHashCode
@RequiredArgsConstructor
@Value
--Version immuable de @ Data
@Builder
Concédant
import lombok.Builder;
import java.util.List;
@Builder
public class Human {
private int age;
private final String name;
private List<String> hobby;
}
Côté à utiliser
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> hobby = Arrays.asList("Futsal", "régime", "en train de lire");
Human human = new Human.HumanBuilder().age(20).name("Nom Taro").hobby(hobby).build();
System.out.println(human);
}
}
Classe générée
import java.util.List;
public class Human {
private int age;
private final String name;
private List<String> hobby;
@java.lang.SuppressWarnings("all")
Human(final int age, final String name, final List<String> hobby) {
this.age = age;
this.name = name;
this.hobby = hobby;
}
@java.lang.SuppressWarnings("all")
public static class HumanBuilder {
@java.lang.SuppressWarnings("all")
private int age;
@java.lang.SuppressWarnings("all")
private String name;
@java.lang.SuppressWarnings("all")
private List<String> hobby;
@java.lang.SuppressWarnings("all")
HumanBuilder() {
}
@java.lang.SuppressWarnings("all")
public HumanBuilder age(final int age) {
this.age = age;
return this;
}
@java.lang.SuppressWarnings("all")
public HumanBuilder name(final String name) {
this.name = name;
return this;
}
@java.lang.SuppressWarnings("all")
public HumanBuilder hobby(final List<String> hobby) {
this.hobby = hobby;
return this;
}
@java.lang.SuppressWarnings("all")
public Human build() {
return new Human(age, name, hobby);
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "Human.HumanBuilder(age=" + this.age + ", name=" + this.name + ", hobby=" + this.hobby + ")";
}
}
@java.lang.SuppressWarnings("all")
public static HumanBuilder builder() {
return new HumanBuilder();
}
}
@NonNull
--Si vous le donnez à un champ de classe ou à un argument de méthode, il recherchera automatiquement null.
@EqualsAndHashCode
--ʻEquals () , la méthode
hashCode () `est générée automatiquement
@Log
log
@Code généré lors de l'ajout de Slf4j
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
Slf4j
, Log4j
var
/ val
--Le type peut être déduit automatiquement lorsqu'une variable est déclarée. Il semble qu'il ne sera pas utilisé car il a été implémenté en standard dans JDK10 ou version ultérieure
Recommended Posts