Posts

Showing posts from April, 2017

Upgrade to Java8 - wyrażenia lambda i interfejsy

Postanowiłem troszkę pobawić się w praktyce z już dawno powstałą Javą 8 oraz dowiedzieć się o niej więcej. Post będzie dotyczył wyrażeń lambda oraz interfejsów. Co to jest lambda? Jest to nic innego jak łatwiejsza implementacja klas anonimowych. Przedstawię to na przykładzie: colors.sort((o1, o2) -> o1.getPosition() - o2.getPosition()); colors.sort(new Comparator<Figure>() { @Override public int compare(Figure o1, Figure o2) { return o1.getPosition() - o2.getPosition(); } }); Obydwa powyższe zapisy robią to samo. A więc wyrażenia lambda wprowadzone (dość późno patrząc na konkurencyjny C#) tak na prawdę nie wprowadza nowych możliwość. A więc po co lambda? Uważam, że zapisy lambda są o wiele czytelniejsze niż implementacja klasy anonimowej. Wraz z przeczytaniem moich wpisów o czystym kodzie wiesz, że to bardzo ważne. Jednakże nie uważam tego jako kluczową zmianę, ponieważ w samym działaniu języka Java nic ona nie zmienia. Z wyrażeniami lambda jest j