Nel pieno rispetto della funzione lambda Java e degli intenti o sviluppatori, vorrei chiedere: qual è il nuovo e perché è migliore rispetto all'approccio tradizionale di interfaccia/metodo? Perché è meglio di (supponiamo) forEach(IApply)
dove:
IApply
è un'interfaccia
public interface IApply {
void exec(KEY key, VALUE value);
}
Come impedisce al parallelismo? Almeno l'implementazione di IApply può essere riutilizzata, ereditata (estesa), implementata in classe statica.
L'ultimo argomento è importante dopo decine di esempi di errori di juniores che visto che manca quel codice lambda accede a questa di classe esterna può essere una causa di classe rimane nella memoria dopo chiaro riferimento ad essa è già nullo.
Da questo punto di vista riferimento a membri statici di una classe sono molto importanti (sono le analogie di un caso di C# "delegare" s. E principally- da una lambda a mano è super incapsulamento, da un altro non è riutilizzabile, e contemporaneamente - violazione dei principi di base della cultura OOD:..? utenti che accede master gratuito dal punto di vista della cultura della retromarcia programming- agli anni 70-esimo secolo scorso
programmazione funzionale -Vedo, ma perché per mix è il fenomeno OOP che Java è.L'OOD ha un modello meraviglioso chiamato disaccoppiamento Data-Behaviour che offre elegantemente le stesse possibilità? L'argomento - è lo stesso di Java Script ... nu, davvero! Quindi dagli strumenti per incorporare Java Script in Java e scrivere blocchi di sistema in Java Script. Quindi non vedo ancora così tanti benefici reali, come ci sono in onda di pubblicità.
http://www.lambdafaq.org/why-are-lambda-expressions-being-added-to-java/ "* Il vantaggio che questo cambiamento comporta è che le raccolte possono ora organizzare internamente la propria iterazione, trasferendo la responsabilità per la parallelizzazione dal codice client al codice libreria. * " – assylias