Java - Do la función recibe el parámetro interno cuando se utiliza el ::?

user10796624:

Tengo cierta confusión y quiero aclarar mi concepto.

Vamos a decir que la declaración siguiente:

.map(i -> Tests.doubleIt(i))

Por lo tanto, cuando se utiliza el ::como:

.map(Tests::doubleIt)

Así que, ¿el iparámetro se recibe internamente por el doubleIte internamente pasa al doubleItmétodo?

¿Podemos conocer el funcionamiento interno como el ique se recibe y se reenvía al doubleItmétodo en el caso de ::?

TJ Crowder:

El código de mapllamadas de la función se le pasa ( doubleIt) pasándole el argumento directamente, lo que doubleItrecibe como primer parámetro formal. Por el contrario, con su versión lambda, mapse llamará al lambda con el argumento de que su lambda recibe como iparámetro, y luego su lambda llama doubleItusando icomo argumento. Por lo que es más directo con la referencia al método (en teoría) que con la lambda.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=233588&siteId=1
Recomendado
Clasificación