fork download
  1. import java.util.*;
  2. import java.util.stream.*;
  3. import java.lang.*;
  4. import java.io.*;
  5.  
  6. interface CarFactory {
  7. List<Car> getCars();
  8. boolean producesCarModel(String name);
  9. }
  10.  
  11. interface Car {
  12. String getName();
  13. }
  14.  
  15. class Demo {
  16. public static void main (String[] args) throws java.lang.Exception {
  17. System.out.println("Yep, it compiles");
  18. }
  19.  
  20. private List<CarFactory> findFactoriesThatProducesModel(List<CarFactory> factories, String modelName) {
  21. return factories.stream()
  22. .filter(factory -> factory.getCars().stream().anyMatch(car -> modelName.equals(car.getName())))
  23. .collect(Collectors.toList());
  24. }
  25.  
  26.  
  27. private List<CarFactory> findFactoriesThatProducesModel2(List<CarFactory> factories, String modelName) {
  28. return factories.stream()
  29. .filter(factory -> factory.producesCarModel(modelName))
  30. .collect(Collectors.toList());
  31. }
  32. }
Success #stdin #stdout 0.07s 2841600KB
stdin
Standard input is empty
stdout
Yep, it compiles