vantagens reais de delegados .NET em aulas Anon de Java?
-
12-09-2019 - |
Pergunta
Eu sei que muitos dos usos de delegados Net pode ser emulada em Java usando uma combinação de interfaces e classes anônimas, mas existem situações em que os delegados têm uma vantagem real e não existe equivalente Java?
Solução
- Muito mais sintaxe concisa em C # com expressões lambda e métodos anônimos
- Tipo de inferência
- Suporte Geral para os delegados na língua (conversões grupo de método etc)
- delegados Multi-elenco com suporte ao idioma
- Eventos (sintaxe simples para o padrão observador baseado em delegados)
- A execução assíncrona através do sistema de thread-piscina
- Árvores de expressão com o suporte ao idioma
Sim, um monte de que pode ser feito em Java, mas é apenas doloroso.
Imagine escrever consultas LINQ, mas sem as expressões lambda, métodos de extensão etc. Seria hediondo. O mesmo vale para um monte de outros lugares onde os delegados são a solução natural em C # ou .NET - a solução Java idiomática muitas vezes não usar classes internas anônimas, porque eles são tão enervante feio
Outras dicas
fechamentos reais com métodos anônimos no c #
com classes anônimas em Java, você tem que declarar todas as variáveis, você pode usar a partir do escopo externo, como final