Hej, powoli uczę się lambd w javie 8. Zastanawiam się jak zrobić taką metodę:
public String metoda(JakasKolekcja<String> jakasKolekcja) {
jakasKolekcja.stream().findFirst().ifPresent(obiektKolekcji -> return obiektKolekcji);
if(jakisOddzielnyWarunek) {
return "Cos tam innego zwraca";
}
return "Ostatecznie jak nic nie pasuje to zwraca to";
}
Tylko mam problem w tej lambdzie ze zwróceniem tego obiektu. Jedyne co wymyśliłem to:
public String metoda(JakasKolekcja<String> jakasKolekcja) {
final String[] message = new String[1];
jakasKolekcja.stream().findFirst().ifPresent(obiektKolekcji -> message[0] = obiektKolekcji);
if(message[0] != null) {
return message[0];
}
if(jakisOddzielnyWarunek) {
return "Cos tam innego zwraca";
}
return "Ostatecznie jak nic nie pasuje to zwraca to";
}
Ale wydaje się jakieś przesadzone. Da się prościej? Pozdrawiam ;)