Estoy probando la biblioteca immutables.org. Lo que necesito es poder especificar una clase, así que he definido
@Value.Immutable public interface Value<T> { Class<T> getType(); }El constructor generado por inmutables no acepta esto.
ImmutableValue.builder().type(String.class)...Porque espera un Class<Object>. ¿Cómo hago para que el constructor acepte String.class?
Anotar el tipo con @Value.Parameter crea muy bien un método que funciona
ImmutableValue.of(String.class)...Pero el resultado es una instancia, no un constructor, por lo que los valores de seguimiento solo se pueden establecer con la cruz.
Puede inferir el tipo usando el tipo testigo .
public class ImmutableExample { public static void main(String[] args) { ImmutableValue immutableValue = ImmutableValue.<String>builder() .type(String.class).build(); System.out.println(immutableValue.getType()); } }