int Max = 0;
int MaxPeremia=0;
for(Employee n: FirmaPopka()){
Max+= n.getSalry();
if(n instanceof Worker){
Worker w= (Worker)n;
MaxPeremia+= w.getBonus();
Optional<Integer> sum = FirmaPopka().stream().map(w::getBonus).reduce( 0.0,(part, next) -> part + next);// TO POWINNO DZIAŁAĆ TAK ALE GDZIEŚ JEST JAKIŚ MAŁY BŁĄD!
Niby program działa bo w.getBonus zwraca to co chce ale zadanie mam aby to zrealizować przy pomocy wyrażeń funkcjonalnych czyli jakoś tak . Nie mam dostepu do obiektu wiec daje to w if chyba że da się to inaczej zrobić . Chodzi o sumę wszystkich bonusów suma premi.
Optional<Integer> sum = FirmaPopka().stream().map(w::getBonus).reduce( 0.0,(part, next) -> part + next);