Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
No desenvolvimento em Java, muitas vezes nos deparamos com a limitação de que a interface Runnable não aceita parâmetros diretamente. Isso acaba dificultando a implementação de tarefas que precisam de dados dinâmicos, especialmente em aplicações que requerem maior flexibilidade ou operações específicas.
Uma abordagem comum é criar classes anônimas ou lambdas que capturam variáveis do escopo externo, mas isso nem sempre é suficiente, especialmente se a lógica precisa ser mais encapsulada ou reutilizável.
Uma solução prática é criar uma interface funcional customizada, como FuncRunnable, que aceita parâmetros na sua execução. Assim, podemos manter a ideia de tarefas que podem receber dados no momento da execução, sem quebrar princípios OO. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
Exemplo:
@FunctionalInterface
public interface ParamRunnable {
void run(Object... params). }
// Implementação
ParamRunnable minhaTarefa = (params) -> {
String dado = (String) params[0]. // lógica com dado
}. // Execução
minhaTarefa.run("valorDinâmico").
Essa estratégia evita criar muitas subclasses ou lambdas complexas, além de manter o código mais limpo e de fácil manutenção. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
Na sua opinião, qual seria o impacto de usar esse tipo de abordagem em projetos maiores? Vale a pena para casos simples ou acaba complicando a estrutura? A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois.
Carregando comentários...