• generate the getter and setter boilerplate
• perform null-checking
• provide var and val type inference to Java versions prior to Java 10
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>r4j-example</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>Maven Quick Start Archetype</name> <url>http://maven.apache.org</url> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</scope> </dependency> </dependencies> </project>
import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Account { String type; public Account() {} }
import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Employee { String name; public Employee() {} }
import java.util.HashMap; import lombok.val; import lombok.NonNull; public class Example { Account account = new Account(); Employee employee = new Employee(); public HashMapvalDemo() { val valMap = new HashMap (); valMap.put(0, "zero"); valMap.put(5, "five"); valMap.put(30, "thirty"); return valMap; } public void notNullDemo(@NonNull Employee employee, @NonNull Account account){ employee.setName("Stephen"); account.setType("Super-Saver"); } public static void main(String[] args) { Example ex = new Example(); System.out.println(ex.valDemo()); ex.notNullDemo(ex.employee, ex.account); } }