in src/main/java/com/ql/util/express/ExpressRunner.java [157:183]
public ExpressRunner(boolean isPrecise, boolean isTrace, IExpressResourceLoader iExpressResourceLoader,
NodeTypeManager nodeTypeManager, Map<String, Future<InstructionSet>> cacheMap) {
this.isTrace = isTrace;
this.isPrecise = isPrecise;
this.expressResourceLoader = iExpressResourceLoader;
if (nodeTypeManager == null) {
manager = new NodeTypeManager();
} else {
manager = nodeTypeManager;
}
if (Objects.isNull(cacheMap)) {
expressInstructionSetCache = new ConcurrentHashMap<>();
} else {
expressInstructionSetCache = cacheMap;
}
this.operatorManager = new OperatorFactory(this.isPrecise);
this.loader = new ExpressLoader(this);
this.parse = new ExpressParse(manager, this.expressResourceLoader, this.isPrecise);
rootExpressPackage.addPackage("java.lang");
rootExpressPackage.addPackage("java.util");
// 默认引入 java8 stream api, jdk 版本低于 8 也不会有影响, 因为是运行时动态取的
rootExpressPackage.addPackage("java.util.stream");
this.addSystemFunctions();
this.addSystemOperators();
}