ho scritto un pezzo di codice e mi chiedo come posso scriverlo più elegante, utilizzando i flussi qui è:Come scriverlo usando i flussi? Java 8
public boolean possibleToAddTask(LocalDate taskDate, final String username) {
List<Task> userTasklist = find(username).getTaskList();
for(Task task : userTasklist) {
if(task.getDate().equals(taskDate)){
return false;
}
}
return true;
}
qui - alcuni booleano viene restituito da un metodo. Se la data specificata esiste già in qualche operazione restituisce falso, altrimenti vero (in modo che il tipo restituito risponde alla questione sollevata in nome di metodo :))
Stavo cercando di filtri sui corsi d'acqua, ma ha funzionato solo per un po 'e poi i test unitari mi hanno dato dei risultati inaspettati, quindi l'ho cancellato e l'ho scritto come nella sua parte superiore. Ora voglio abbellirla
precedenza era come questo:
public boolean possibleToAddTask(LocalDate taskDate, final String username) {
List<Task> userTasklist = find(username).getTaskList();
try {
userTasklist.stream().filter(n -> n.getDate().equals(taskDate)).findFirst().get();
return true;
} catch (NoSuchElementException e) {
return false;
}
}
grazie in anticipo :)
Hmm ... Forse questo è un po 'meglio dato che imita la logica originale più da vicino. – kuujo
@lusiak Sembra essere la soluzione perfetta, tuttavia il test dell'unità restituisce OK per soluzioni no-stream e FAILS per le soluzioni di streaming – azalut
Probabilmente so perché. Basta negare ciò che il flusso restituisce. –