将 Class<T> 与不可变变量一起使用
Using Class<T> with immutables
我正在尝试 immutables.org 库。我需要的是能够指定一个class,所以我定义了
@Value.Immutable
public interface Value<T> {
Class<T> getType();
}
immutables 生成的构建器不接受这个
ImmutableValue.builder().type(String.class)...
因为它需要一个 Class
用 @Value.Parameter 注释类型很好地创建了一个有效的方法
ImmutableValue.of(String.class)...
但结果是一个实例,而不是一个构建器,所以后续值只能使用凋灵来设置。
您可以使用 type witness 推断类型。
public class ImmutableExample {
public static void main(String[] args) {
ImmutableValue immutableValue = ImmutableValue.<String>builder()
.type(String.class).build();
System.out.println(immutableValue.getType());
}
}
我正在尝试 immutables.org 库。我需要的是能够指定一个class,所以我定义了
@Value.Immutable
public interface Value<T> {
Class<T> getType();
}
immutables 生成的构建器不接受这个
ImmutableValue.builder().type(String.class)...
因为它需要一个 Class
用 @Value.Parameter 注释类型很好地创建了一个有效的方法
ImmutableValue.of(String.class)...
但结果是一个实例,而不是一个构建器,所以后续值只能使用凋灵来设置。
您可以使用 type witness 推断类型。
public class ImmutableExample {
public static void main(String[] args) {
ImmutableValue immutableValue = ImmutableValue.<String>builder()
.type(String.class).build();
System.out.println(immutableValue.getType());
}
}