import java.util.List;
import java.util.Optional;
class Ideone {
public static void main
(String[] args
) { List
<Pet
> pets
= List.
of(new Dog
(),
new Cat
()); pets.stream().parallel()
.forEach(Ideone::printSoundAndPet);
}
private static void printSoundAndPet(Pet pet) {
final Optional<Pet> maybePet = Optional.ofNullable(pet);
maybePet.ifPresent(Pet::sound);
maybePet.map(Pet::toString)
.
ifPresent(System.
out::println
); }
}
interface Pet {
void sound();
}
class Dog implements Pet {
@Override
public void sound() {
}
@Override
return "Dog";
}
}
class Cat implements Pet {
@Override
public void sound() {
}
@Override
return "Cat";
}
}
aW1wb3J0IGphdmEudXRpbC5MaXN0OwppbXBvcnQgamF2YS51dGlsLk9wdGlvbmFsOwoKY2xhc3MgSWRlb25lIHsKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICBMaXN0PFBldD4gcGV0cyA9IExpc3Qub2YobmV3IERvZygpLCBuZXcgQ2F0KCkpOwogICAgcGV0cy5zdHJlYW0oKS5wYXJhbGxlbCgpCiAgICAgICAgLmZvckVhY2goSWRlb25lOjpwcmludFNvdW5kQW5kUGV0KTsKICB9CiAgCiAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBwcmludFNvdW5kQW5kUGV0KFBldCBwZXQpIHsKICAgIGZpbmFsIE9wdGlvbmFsPFBldD4gbWF5YmVQZXQgPSBPcHRpb25hbC5vZk51bGxhYmxlKHBldCk7CiAgICBtYXliZVBldC5pZlByZXNlbnQoUGV0Ojpzb3VuZCk7CiAgICBtYXliZVBldC5tYXAoUGV0Ojp0b1N0cmluZykKICAgICAgICAuaWZQcmVzZW50KFN5c3RlbS5vdXQ6OnByaW50bG4pOwogIH0KfQoKaW50ZXJmYWNlIFBldCB7CiAgdm9pZCBzb3VuZCgpOwp9CgpjbGFzcyBEb2cgaW1wbGVtZW50cyBQZXQgewogIEBPdmVycmlkZQogIHB1YmxpYyB2b2lkIHNvdW5kKCkgewogICAgU3lzdGVtLm91dC5wcmludGxuKCJXb29mIik7CiAgfQoKICBAT3ZlcnJpZGUKICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewogICAgcmV0dXJuICJEb2ciOwogIH0KfQoKY2xhc3MgQ2F0IGltcGxlbWVudHMgUGV0IHsKICBAT3ZlcnJpZGUJCiAgcHVibGljIHZvaWQgc291bmQoKSB7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk1lb3ciKTsKICB9CgogIEBPdmVycmlkZQogIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CiAgICByZXR1cm4gIkNhdCI7CiAgfQp9