public ExpressRunner()

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();
    }