DEV Community

Cover image for How to Write a Multiline Lambda in Java 8

How to Write a Multiline Lambda in Java 8

Gunnar Gissel on March 13, 2017

For the most part, single line lambda functions are all you need. This is a single line lambda: Predicate<Sound> isBark = sound -> Soun...
Collapse
 
evanoman profile image
Evan Oman

The Java lambda syntax allows single line statements or statement blocks which can be arbitrarily long. So the isBark predicate is good and reusable but you could stuff as many lines as you like into the lamba:

Predicate<Animal> isDog = animal -> { 
    try {
        Sound sound = animal.getSound();
        return sound.equals(Sound.valueOf("bark")); 
    } catch (MuteAnimalException e){ 
        logger.severe(e.getMessage); return false; 
    } 
};
Collapse
 
monknomo profile image
Gunnar Gissel

That is true, and reminds me of a change I had thought of for my single line lambda demo. brb, editing example