Sto cercando di utilizzare le funzionalità di java 8. Durante la lettura official tutorial mi sono imbattuto in questo codiceCome funziona questa funzione lambda in java 8?
static void invoke(Runnable r) {
r.run();
}
static <T> T invoke(Callable<T> c) throws Exception {
return c.call();
}
e c'era una domanda:?
Quale metodo verrà richiamato nella seguente dichiarazione"
String s = invoke(() -> "done");
e la risposta è stata
Il metodo
invoke(Callable<T>)
verrà richiamato poiché tale metodo restituisce un valore; il metodoinvoke(Runnable)
no. In questo caso, il tipo di espressione lambda() -> "done"
èCallable<T>
.
quanto ho capito dal invoke
dovrebbe restituire un String
, chiama invoke di Callable. Ma non sono sicuro di come funzioni esattamente.
Ho modificato la domanda un po '(per aggiungere ulteriori dettagli e link al tutorial). Se pensi che sia cambiato troppo sentiti libero di eseguire il rollback della mia modifica. – Pshemo
@Pshemo Grazie per la modifica. Questo è quello che volevo chiedere. –