<dependency>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-immutable</artifactId>
<version>0.13.3</version>
</dependency>
@Immutable
public class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// getters
}
@Immutable(builder = ImmutablePerson.Builder.class)
public class Person {
private final String name;
private final int age;
private Person(String name, int age) {
this.name = name;
this.age = age;
}
public static class Builder {
private String name;
private int age;
public Builder name(String name) {
this.name = name;
return this;
}
public Builder age(int age) {
this.age = age;
return this;
}
public Person build() {
return new Person(name, age);
}
}
// getters
}