要创建一个不可变的@Value.Immutable类,可以使用以下步骤:
首先,确保在项目的依赖中包含了Immutables库。
创建一个接口,并使用@Value.Immutable注解标记它。例如:
@Value.Immutable
public interface Person {
String getName();
int getAge();
}
@Value.Immutable
public interface Person {
@Value.Parameter
String getName();
@Value.Parameter
int getAge();
}
@Value.Immutable
public interface Person {
@Value.Parameter
String getName();
@Value.Parameter
int getAge();
@Value.Immutable.Factory
static Person create(String name, int age) {
return new ImmutablePerson(name, age);
}
}
@Value.Immutable
public interface Person {
@Value.Parameter
String getName();
@Value.Parameter
int getAge();
@Value.Immutable.Factory
static Person create(String name, int age) {
return new ImmutablePerson(name, age);
}
final class ImmutablePerson implements Person {
private final String name;
private final int age;
public ImmutablePerson(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String getName() {
return name;
}
@Override
public int getAge() {
return age;
}
}
}
Person person = Person.create("John", 25);
通过这种方式,我们将创建一个不可变的@Value.Immutable类,其中公共字段是最终的,而不是使用getter方法。