ArrayLikeLambdaExecutor.java 850 B

12345678910111213141516171819202122232425262728
  1. package com.ssssssss.expression.parsing;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.List;
  5. import java.util.function.Supplier;
  6. public class ArrayLikeLambdaExecutor {
  7. @SuppressWarnings("unchecked")
  8. public static Object map(Object arrayLike, Object... arguments) {
  9. // System.err.println("ArrayLikeLambdaExecutor:11 " + arrayLike);
  10. List<Object> results = null;
  11. Object argument = arguments[0];
  12. List<Object> args = (List<Object>) argument;
  13. results = new ArrayList<>(args.size());
  14. for (int j = 0; j < args.size(); j++) {
  15. Object result = ((Supplier) args.get(j)).get();
  16. results.add(result);
  17. }
  18. if (arrayLike instanceof Collection) {
  19. return results;
  20. }
  21. throw new RuntimeException("未实现");
  22. }
  23. }