No java.util.function
pacote do Java 8 , temos:
- Função : Pega um argumento, produz um resultado.
- Consumidor : Aceita um argumento, não produz nada.
- Fornecedor : Não aceita argumentos, produz um resultado.
- ... : Outros casos de manipulação de primitivas, 2 argumentos, etc ...
Mas preciso lidar com o caso " não aceita argumentos, não produz nada ".
Não há nada para isso java.util.functionnal
.
Então, a questão é:
Qual é o nome de ' uma função que não aceita argumentos e não retorna nada '?
No Java 8, sua definição seria:
@FunctionalInterface
public interface InsertANameHere {
void execute();
}
O executor já existe e tem outro objetivo: " Um objeto que executa tarefas Runnable enviadas ". A assinatura não corresponde a ( execute(Runnable):void
) e nem sequer é uma interface funcional .
O executável existe, mas está fortemente vinculado ao contexto de segmentação:
- O pacote
java.lang
não éjava.util.function
. - O javadoc declara: " A interface Runnable deve ser implementada por qualquer classe cujas instâncias sejam executadas por um encadeamento ".
- O nome "Runnable" sugere algum código em execução dentro de um thread.
Runnable
está desatualizado neste momento, porque um Runnable também é usado por outras classes além de Thread
( Executor
por exemplo).
Runnable
s só pode ser .run()
por Thread
s. Na verdade eles estão muito comumente usado para exatamente o propósito descrito na pergunta
java.util.function
pacote.