fork download
  1. import java.util.List;
  2. import java.util.Optional;
  3.  
  4. class Ideone {
  5. public static void main(String[] args) {
  6. List<Pet> pets = List.of(new Dog(), new Cat());
  7. pets.stream().parallel()
  8. .forEach(Ideone::printSoundAndPet);
  9. }
  10.  
  11. private static void printSoundAndPet(Pet pet) {
  12. final Optional<Pet> maybePet = Optional.ofNullable(pet);
  13. maybePet.ifPresent(Pet::sound);
  14. maybePet.map(Pet::toString)
  15. .ifPresent(System.out::println);
  16. }
  17. }
  18.  
  19. interface Pet {
  20. void sound();
  21. }
  22.  
  23. class Dog implements Pet {
  24. @Override
  25. public void sound() {
  26. System.out.println("Woof");
  27. }
  28.  
  29. @Override
  30. public String toString() {
  31. return "Dog";
  32. }
  33. }
  34.  
  35. class Cat implements Pet {
  36. @Override
  37. public void sound() {
  38. System.out.println("Meow");
  39. }
  40.  
  41. @Override
  42. public String toString() {
  43. return "Cat";
  44. }
  45. }
Success #stdin #stdout 0.1s 50488KB
stdin
Standard input is empty
stdout
Meow
Woof
Dog
Cat