Java 8: Referencias a métodos y constructores
La referenciación a métodos y constructores es otra de las funcionalidades que nos ofrece Java 8, y que nos permite utilizar dichas referencias a modo de expresiones lambda.
Estas referencias son lo que en inglés se denomina “syntactic sugar”, y consiste en pequeños añadidos a la sintaxis de Java diseñados para hacer algunas construcciones más fáciles de leer o expresar.
Las referencias a métodos y constructores sólo pueden ser utilizadas cuando la interfaz funcional coincide con el patrón del método referenciado.
|
|
En el siguiente ejemplo podemos ver que el patrón esperado por el compilador en el momento de definir la expresión lambda es la de la interfaz funcional Consumer
|
|
Al tener la información necesaria para inferir los parámetros de entrada, los parámetros de salida y el comportamiento a aplicar en la expresión lambda, es el compilador el que hace el resto del trabajo por nosotros, pudiendo utilizar las referencias a métodos y constructores sin necesidad de definir cómo queremos utilizar las variables de entrada o salida, como haríamos con una expresión lambda basada en una interfaz funcional.
Las reglas para utilizar las referencias mencionadas en expresiones lambda se pueden dividir en tres:
- Referencias a métodos estáticos
- Referencias a métodos sobre una instancia de un objeto
- Referencias a métodos sobre la instancia del objeto sobre el cual se crea la expresión lambda
Reglas aplicables al referenciar métodos en expresiones lambda
A continuación se puede encontrar un ejemplo de cada una de las reglas listadas en la imagen anterior:
Ejemplo de referencias a métodos en expresiones lambda
De la misma forma, para hacer referencia a un constructor, utilizamos la misma lógica anterior, utilizando la palabra clave new para instanciar el objeto.
|
|