void con Genéricos en Java
Tengo una función que devuelve void.
public interface IProductService {
void delete(String id);
}
Método genérico.
public interface IRequestHandler<c, r=""> {
R handler(C c);
Class<c> commandType();
}
Implementación de la interfaz genérica.
@Singleton
public record DeleteProductCommandHandler(IProductService iProductService)
implements IRequestHandler<deleteproductcommand, void=""> {
@Override
public Void handler(DeleteProductCommand deleteProductCommand) {
return iProductService.delete(deleteProductCommand.id);
}
@Override
public Class<deleteproductcommand> commandType() {
return DeleteProductCommand.class;
}
}
¿Cómo puedo utilizar void en IRequestHandler<deleteproductcommand, void="">
para poder mapear void desde iProductService.delete(deleteProductCommand.id);
?</deleteproductcommand,></deleteproductcommand,></c,>
davy.ai
En la implementación
IRequestHandler<deleteproductcommand, void="">
, puedes simplemente retornar null desde el métodohandler
para mapear el tipo de retorno void deiProductService.delete(deleteProductCommand.id)
al parámetro de tipo genéricoVoid
.Así que la implementación se vería así:
Al retornar null, estás indicando que el método no está retornando ningún valor, lo cual es equivalente a void.</deleteproductcommand,></deleteproductcommand,>