Il s'agit d'une bibliothèque qui génère automatiquement des descriptions redondantes lors de la création de classes Java au moment de la compilation.
Par exemple, la classe suivante
DateTime.java
public class DateTime
{
private LocalDateTime value = LocalDateTime.MIN;
public DateTime()
{
}
public DateTime( LocalDateTime value )
{
this.value = value;
}
public boolean isEmpty()
{
return value == null;
}
public boolean isNotEmpty()
{
return !isEmpty();
}
public String format( String pattern )
{
DateTimeFormatter formatter = DateTimeFormatter.ofPattern( pattern);
return formatter.format( value );
}
public LocalDateTime getValue()
{
return value;
}
public void setValue( LocalDateTime value )
{
this.value = value;
}
@Override
public String toString()
{
String format = "Person(name=%s)";
return String.format(format, value);
}
}
Il peut être remanié comme suit.
DateTime.java
@AllArgsConstructor
@NoArgsConstructor
@toString
public class DateTime
{
@Getter
@Setter
private LocalDateTime value = LocalDateTime.MIN;
public boolean isEmpty()
{
return value == null;
}
public boolean isNotEmpty()
{
return !isEmpty();
}
public String format( String pattern )
{
DateTimeFormatter formatter = DateTimeFormatter.ofPattern( pattern);
return formatter.format( value );
}
}
plus loin
DateTime.java
@AllArgsConstructor
@NoArgsConstructor
@Data
public class DateTime
{
private LocalDateTime value = LocalDateTime.MIN;
public boolean isEmpty()
{
return value == null;
}
public boolean isNotEmpty()
{
return !isEmpty();
}
public String format( String pattern )
{
DateTimeFormatter formatter = DateTimeFormatter.ofPattern( pattern);
return formatter.format( value );
}}
Peut être omis.
* @Data signifie un composite de plusieurs annotations telles que @Getter et @ Setter
C'est rafraîchissant car il n'y a que des méthodes significatives dans la classe.
Il existe diverses autres annotations,
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@toString
Si vous êtes au niveau d'introduction, si vous maintenez ce qui précède, je pense que c'est correct pour le moment.
lombok génère chaque méthode selon l'annotation au moment de la compilation, S'il est de niveau 2.11 ou moins, vous devez ajouter vous-même les configurations fournies.
build.gradle
...
configurations {
provided
}
...
dependencies {
...
provided "org.projectlombok:lombok:1.16.4"
...
}
De plus, lors du développement avec Eclipse, la description suivante est également requise.
build.gradle
eclipse {
classpath {
plusConfigurations += [configurations.provided]
noExportConfigurations += [configurations.provided]
}
}
En 1-a, nous avons défini nous-mêmes providedConfigurations, mais en ajoutant le plug-in war de gradle, providedCompile peut être utilisé, vous pouvez donc l'utiliser.
build.gradle
...
apply plugin: 'war'
...
dependencies {
...
providedCompile "org.projectlombok:lombok:1.16.4"
...
}
Depuis gradle 2.12, une portée appelée compileOnly, qui est fournie par défaut, a été ajoutée, alors utilisez-la.
build.gradle
...
dependencies {
...
compileOnly "org.projectlombok:lombok:1.16.4"
...
}
Si vous ajoutez simplement une dépendance, l'application construite fonctionnera correctement, mais elle ne sera pas reconnue sur l'EDI, vous devez donc ajouter le plug-in lombok.
Téléchargez le bocal depuis le site officiel https://projectlombok.org/download.html
Pour les fenêtres Double-cliquez sur le fichier jar téléchargé pour démarrer le programme d'installation, sélectionnez donc le fichier exe Eclipse pour terminer le réglage.
Pour Mac Copiez le Jar téléchargé dans le répertoire suivant
cp ./lombok.jar /Applications/Eclipse.app/Contents/MacOS/lombok.jar
Ajoutez ce qui suit à /Applications/Eclipse.app/Contents/Eclipse/eclipse.ini
eclipse.ini
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
Cela activera les annotations Lombok sur Eclipse.
Cela permet de réduire le temps de codage perdu.
Cependant, selon l'objet, il y a des cas où il vaut mieux ne pas créer de setter, alors utilisons-le correctement et passons une vie Java confortable ♪
Ensuite, je voudrais introduire une annotation liée à la création d'objets.
Eh bien.
Recommended Posts