Met behulp van Lombok's @Getter voor Booleaanse velden

1. Inleiding

Project Lombok is een populaire bibliotheek voor het verkleinen van Java-boilerplate.

In deze korte tutorial bekijken we hoe Lombok's @Beter annotatie werkt op booleaanse velden om de noodzaak om de bijbehorende getter-methoden te maken, te verwijderen.

2. Maven Afhankelijkheid

Laten we beginnen met het toevoegen van Project Lombok aan ons pom.xml:

 org.projectlombok lombok 1.18.10 

3. @Getter gebruiken op een boolean Veld

Laten we zeggen dat we willen dat Lombok een accessormethode genereert voor ons privé booleaanse veld.

We kunnen dat veld annoteren met @Beter:

@Getter private boolean draaien;

En Lombok zal zijn annotatieprocessor gebruiken om een is aan het rennen() methode in de klas.

En nu kunnen we ernaar verwijzen, ook al hebben we de methode niet zelf geschreven:

@Test openbare leegte whenBasicBooleanField_thenMethodNamePrefixedWithIsFollowedByFieldName () {LombokExamples lombokExamples = nieuwe LombokExamples (); assertFalse (lombokExamples.isRunning ()); }

3.1. EEN boolean Veld met dezelfde naam als de accessor

Laten we nog een regel code toevoegen om het voorbeeld een beetje lastig te maken:

@Getter private boolean isRunning = true;

Het zou een beetje omslachtig zijn als Lombok een methode zou maken met de naam isIsRunning.

In plaats daarvan creëert Lombok is aan het rennen zoals eerder:

@Test openbare leegte whenBooleanFieldPrefixedWithIs_thenMethodNameIsSameAsFieldName () {LombokExamples lombokExamples = nieuwe LombokExamples (); assertTrue (lombokExamples.isRunning ()); }

3.2. Twee boolean Velden met dezelfde Accessor-naam

Soms kunnen er conflicten zijn.

Laten we zeggen dat we de volgende regels in dezelfde klas moeten hebben:

 @Getter openbare boolean running = true; @Getter openbare boolean isRunning = false;

Er zijn veel redenen waarom we een dergelijke verwarrende naamgevingsconventie moeten vermijden. Een daarvan is dat het een conflict creëert voor Lombok.

Gebruikmakend van de conventie van Lombok, zouden deze twee velden dezelfde accessormethode-naam hebben: is aan het rennen. Maar als je twee methoden met dezelfde naam in dezelfde klasse hebt, ontstaat er een compilatiefout.

Lombok lost dit op door slechts één accessormethode te maken en in dit geval naar rennen, op basis van veldaangiftevolgorde:

@Test openbare leegte whenTwoBooleanFieldsCauseNamingConflict_thenLombokMapsToFirstDeclaredField () {LombokExamples lombokExamples = nieuwe LombokExamples (); assertTrue (lombokExamples.isRunning () == lombokExamples.running); assertFalse (lombokExamples.isRunning () == lombokExamples.isRunning); }

4. Gebruik @Getter op een Boolean Veld

Nu behandelt Lombok de Boolean typ net iets anders.

Laten we hetzelfde lopende voorbeeld nog een laatste keer proberen, maar met Boolean in plaats van het primitieve type:

@Getter private Boolean actief;

In plaats van te creëren is aan het rennen, Lombok zal genereren getRunning:

@Test openbare leegte whenFieldOfBooleanType_thenLombokPrefixesMethodWithGetInsteadOfIs () {LombokExamples lombokExamples = nieuwe LombokExamples (); assertTrue (lombokExamples.getRunning ()); }

5. Conclusie

In dit artikel hebben we onderzocht hoe we de @Getter-annotatie van Lombok kunnen gebruiken voor Booleaanse primitieven en Booleaanse objecten.

En zorg ervoor dat je de voorbeelden op Github bekijkt.