ciao! al minuto 13:20 circa alla riga 34 crei il metodo wrap, poi non capisco come mai subito dopo il return param crei una nuova lambda...potresti spiegarmi come funziona la sintassi in questo caso? ho provato a scriverne una così AgeOp firstOp = (ArrayList empList) -> { System.out.println("starting calculate sum of age"); int ageSum = 0; for(Employee employee : empList) { ageSum += employee.getAge(); System.out.println("now age sum is equal to : " + ageSum); } return ageSum; }; e un altra così Collections.sort(employees, (employee1, employee2) -> employee1.getName().compareTo(employee2.getName())); però non riesco a capire come posso farle nidificate.....potresti aiutarmi per favore?
Ciao, scusa ma non ho ben capito la domanda... Nel metodo wrap non ritorno param, ritorno un'istanza di Consumer, che è rappresentabile mediante una lambda expression. Avrei potuto scriverlo in modo equivalente anche senza lambda, così: return new Consumer() { @Override public void accept(T param) { try { consumer.accept(param); } catch (Exception ex) { throw new RuntimeException(ex); } } }; Non mi è chiaro cosa vuoi ottenere da un'eventuale nidificazione delle lambda che hai postato come esempio. Però se vuoi calcolare la somma delle età ti consiglio di usare il metodo reduce: employees.stream().map(e -> e.getAge()).reduce(0, (age1, age2) -> age1 + age2)
@@zonia3000 ok perfetto ora è chiaro! perdona se non mi sono espresso bene, ma volevo capire cosa ritornasse la funzione! Ora mi è tutto chiaro grazie della risposta sei stata gentilissima!
Vincenzo D'Aniello Ciao, butto sempre giù degli appunti, anche per seguire bene un filo logico. Poi quando monto il video taglio le pause in modo da rendere il discorso fluido.
Chiarissima. Il tuo approccio è lineare e congruente. Nella prima metà del video tratti con efficacia argomenti non immediatamente intuitivi. Consiglieresti pure dei volumi dove apprendere Java8 sul serio? Grazie e congratulazioni.
Grazie mille. Java 8 l'ho imparato da varie fonti quindi non avrei un libro specifico da consigliare. Secondo me, oltre alle lambda expression, le feature più interessanti introdotte in Java 8 sono la classe CompletableFuture, l'Optional e la possibilità di definire metodi di default all'interno delle interfacce.
Grazie mille, questo video mi è stato molto utile alla comprensione delle lambda, grazie anche per i consigli finali sulle stream API
Sei sempre cristallina, grazie mille per quello che fai
Mi devo mettere in testa di usare le lambda, voglio migliorare il mio codice :D grazie per il video
ciao! al minuto 13:20 circa alla riga 34 crei il metodo wrap, poi non capisco come mai subito dopo il return param crei una nuova lambda...potresti spiegarmi come funziona la sintassi in questo caso?
ho provato a scriverne una così
AgeOp firstOp = (ArrayList empList) -> {
System.out.println("starting calculate sum of age");
int ageSum = 0;
for(Employee employee : empList) {
ageSum += employee.getAge();
System.out.println("now age sum is equal to : " + ageSum);
}
return ageSum;
};
e un altra così
Collections.sort(employees, (employee1, employee2) -> employee1.getName().compareTo(employee2.getName()));
però non riesco a capire come posso farle nidificate.....potresti aiutarmi per favore?
Ciao,
scusa ma non ho ben capito la domanda...
Nel metodo wrap non ritorno param, ritorno un'istanza di Consumer, che è rappresentabile mediante una lambda expression. Avrei potuto scriverlo in modo equivalente anche senza lambda, così:
return new Consumer() {
@Override
public void accept(T param) {
try {
consumer.accept(param);
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
};
Non mi è chiaro cosa vuoi ottenere da un'eventuale nidificazione delle lambda che hai postato come esempio.
Però se vuoi calcolare la somma delle età ti consiglio di usare il metodo reduce:
employees.stream().map(e -> e.getAge()).reduce(0, (age1, age2) -> age1 + age2)
@@zonia3000 ok perfetto ora è chiaro! perdona se non mi sono espresso bene, ma volevo capire cosa ritornasse la funzione! Ora mi è tutto chiaro grazie della risposta sei stata gentilissima!
Ottima spiegazione, grazie!
Ciao, perdonami una domanda, spieghi molto bene mentre lo mostri a video, ma ti prepari un testo scritto prima o non ti prepari niente?
Vincenzo D'Aniello Ciao, butto sempre giù degli appunti, anche per seguire bene un filo logico. Poi quando monto il video taglio le pause in modo da rendere il discorso fluido.
brava!
Chiarissima. Il tuo approccio è lineare e congruente. Nella prima metà del video tratti con efficacia argomenti non immediatamente intuitivi. Consiglieresti pure dei volumi dove apprendere Java8 sul serio? Grazie e congratulazioni.
Grazie mille. Java 8 l'ho imparato da varie fonti quindi non avrei un libro specifico da consigliare. Secondo me, oltre alle lambda expression, le feature più interessanti introdotte in Java 8 sono la classe CompletableFuture, l'Optional e la possibilità di definire metodi di default all'interno delle interfacce.
Grazie mille per il tuo tempo. Sarebbe meglio se andassi meno veloce nelle spiegazioni.. Complimenti per le tue competenze
Un buon video ma manca l'approfondimento dei Generics
bona e brava
Brava, dovremmo vedere se approva anche Mario Fusco . Secondo me il Re della programmazione funzionale :-) ruclips.net/video/FnWntVfEEQg/видео.html
Ciao! Ho avuto il piacere di conoscere Mario ed è un informatico davvero eccezionale. Non ho la pretesa di raggiungere il suo livello ;-)
anche tu sei mitica e ti seguo!
Grazie! :-)