I honestly expected some insight into internals of Java 8 lambdas or, for example, how `retrolambda` works. Unfortunately this is only introduction to lambdas in general (and I'm pretty surprised many haven't even heard of lambdas before)
There's a lot that could be said about this code, but the worst is that it has an incorrectly implemented swap when one exists in the standard collections library. I don't understand why you would show off a feature (which admittedly has an some poor interactions with other aspects of the language) while simultaneously neglecting the standard library and all the language improvements that happened between 1 and 8.<p>Java doesn't need anymore disservices.
Thanks for your comments, guys. Yes, I did push the verbosity setting to the max to underline my point. Unfortunately, there is lot of naive, bloated Java code out there (often much worse than this!) and some of us have to fix it for a living. I'll try to add an abstract singleton proxy bean factory next time :D
This same article and same code example could have been written in 1975 -- "I just figured out how to use function pointers in C..."<p>Even "object orientation" had already been invented back then, but I assume no one could have imagined that it would be perverted into a chronic bulimia of superfluous types as demonstrated by the "LinearSearchModeFactory" example here.
How is this really an improvement over 1 class, with a single method that takes an Enum 'mode', which then switches to one of three internal methods ?<p>Lambdas may have some benefits, but this article really doesn't demonstrate any.