Quando si parla di Java-8 è possibile utilizzare la parola "funzione" per fare riferimento all'interfaccia funzionale (interfaccia con metodo astratto singolo), alla classe che implementa tale interfaccia o all'espressione del tipo di interfaccia funzionale (inclusa espressione lambda o metodo di riferimento). Non dovresti comunque chiamare metodi come funzioni. Questo diventa ancora più importante rispetto alle versioni precedenti di Java, come se si vedesse la parola "funzione" nella discussione relativa a Java-7, si può presumere che il "metodo" fosse inteso. Ma in Java-8 le persone potrebbero pensare di parlare di interfaccia funzionale, non di metodo.
Quindi è ok per dire:
Il metodo Stream.map
accetta una funzione come parametro.
O
Un'interfaccia Collector
aggregati quattro funzioni: il fornitore, accumulatori, combinatore e di finitura.
O
mi passano la funzione Objects::nonNull
al metodo Stream.filter
.
ma il seguente dovrebbe sembrare confuso:
ottengo uno strano un'eccezione quando uso Math.sqrt
funzione.
fonte
2015-11-05 10:12:34
Ho pensato che fosse solo una questione di convenzione terminologica, utilizzare "funzione" in C/C++ e "metodo" in Java. –
Penso che [questa domanda] (http://stackoverflow.com/q/155609/1743880) riguardi effettivamente questo: anche se non menziona esplicitamente Java '' '' '' '' ', sono funzioni nel senso della risposta. – Tunaki
In un'altra nota, gli oggetti dovrebbero essere chiamati classi e viceversa, poiché 'Object' è una classe e' Class.class' è un oggetto? – Kayaman