Pregunta

Sé que muchos de los usos de los delegados .Net puede ser emulado en Java mediante el uso de una combinación de interfaces y clases anónimas, pero ¿Hay alguna situación donde los delegados tienen una ventaja real y no hay equivalente en Java?

¿Fue útil?

Solución

  • Mucho sintaxis más concisa en C # con las expresiones lambda y métodos anónimos
  • La inferencia de tipos
  • Apoyo general a los delegados en la lengua (conversiones de grupo Método etc)
  • delegados de multidifusión con soporte de idiomas
  • Eventos (sintaxis simple para el patrón de observador basado en delegados)
  • Ejecución asíncrona a través del sistema de hilos-pool
  • Los árboles de expresiones con soporte de idiomas

Sí, muchos de ellos puede puede hacer en Java, pero es igual de doloroso.

Imagínese consultas LINQ escritura pero sin expresiones lambda, métodos de extensión, etc. Sería horrible. Lo mismo ocurre con muchos otros lugares donde los delegados son la solución natural en C # .NET o - la solución de Java idiomática menudo no utiliza clases internas anónimas porque son tan condenadamente feo

Otros consejos

cierres reales con los métodos anónimos en C #

con las clases anónimas en Java, usted tiene que declarar todas las variables, se utiliza desde el ámbito exterior, como final

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top