O padrão, tanto para os testes quanto para o programa principal, tem sido ter uma classe abstrata que implementa os métodos genéricos e classes filhas que vão implementar as particularidades.
No entanto, ao tentar fazer isso com as classes de benchmark, notei que a anotação @State não pode estar em uma classe abstrata e, por isso, a anotação @Param e a inicialização de variáveis também são comprometidas.
Isso está quebrando a ideia de uma classe abstrata. Além disso, quando implementado dessa forma, perdemos a capacidade de executar apenas um benchmark (funcionalidade da extensão do JMH).
O padrão, tanto para os testes quanto para o programa principal, tem sido ter uma classe abstrata que implementa os métodos genéricos e classes filhas que vão implementar as particularidades.
No entanto, ao tentar fazer isso com as classes de benchmark, notei que a anotação @State não pode estar em uma classe abstrata e, por isso, a anotação @Param e a inicialização de variáveis também são comprometidas.
Isso está quebrando a ideia de uma classe abstrata. Além disso, quando implementado dessa forma, perdemos a capacidade de executar apenas um benchmark (funcionalidade da extensão do JMH).