class OperatorAnonymousNewArray extends OperatorBase {
    public OperatorAnonymousNewArray(String name) {
        this.name = name;
    }

    public OperatorAnonymousNewArray(String aliasName, String name, String errorInfo) {
        this.name = name;
        this.aliasName = aliasName;
        this.errorInfo = errorInfo;
    }

    @Override
    public OperateData executeInner(InstructionSetContext parent, ArraySwap list) throws Exception {
        Class<?> type = this.findArrayClassType(parent, list);
        type = ExpressUtil.getSimpleDataType(type);
        int[] dims = new int[1];
        dims[0] = list.length;
        Object data = Array.newInstance(type, dims);
        for (int i = 0; i < list.length; i++) {
            Array.set(data, i, list.get(i).getObject(parent));
        }
        return OperateDataCacheManager.fetchOperateData(data, data.getClass());
    }

    private Class<?> findArrayClassType(InstructionSetContext instructionSetContext, ArraySwap list) throws Exception {<FILL_FUNCTION_BODY>}
}

        Class<?> type = null;
        for (int i = 0; i < list.length; i++) {
            Class<?> type1 = list.get(i).getType(instructionSetContext);
            if (type1 == null) {
                //doNothing
            } else if (type == null) {
                //第一次赋值
                type = type1;
            } else if (type1 == type || type.isAssignableFrom(type1)) {
                //type1是type的子类
                //doNothing
            } else if (type1.isAssignableFrom(type)) {
                //寻找更基础的类
                type = type1;
            } else {
                type = Object.class;
            }
        }
        if (type == null) {
            //参数全部为null的情况
            type = Object.class;
        }
        return type;
    
<methods>public non-sealed void <init>() ,public com.ql.util.express.OperateData execute(com.ql.util.express.InstructionSetContext, com.ql.util.express.ArraySwap, List<java.lang.String>) throws java.lang.Exception,public abstract com.ql.util.express.OperateData executeInner(com.ql.util.express.InstructionSetContext, com.ql.util.express.ArraySwap) throws java.lang.Exception,public java.lang.String getAliasName() ,public java.lang.String getErrorInfo() ,public java.lang.String getName() ,public java.lang.String[] getOperateDataAnnotation() ,public java.lang.String[] getOperateDataDesc() ,public boolean isPrecise() ,public void setAliasName(java.lang.String) ,public void setErrorInfo(java.lang.String) ,public void setName(java.lang.String) ,public void setPrecise(boolean) ,public java.lang.Object[] toObjectList(com.ql.util.express.InstructionSetContext, com.ql.util.express.ArraySwap) throws java.lang.Exception,public java.lang.String toString() <variables>protected java.lang.String aliasName,protected java.lang.String errorInfo,protected boolean isPrecise,protected java.lang.String name,protected java.lang.String[] operateDataAnnotation,protected java.lang.String[] operateDataDesc