class InstructionNewVirClass extends Instruction {
    private final String className;
    private final int opDataNumber;

    public InstructionNewVirClass(String name, int opDataNumber) {
        this.className = name;
        this.opDataNumber = opDataNumber;
    }

    public String getClassName() {
        return className;
    }

    @Override
    public void execute(RunEnvironment environment, List<String> errorList) throws Exception {<FILL_FUNCTION_BODY>}

    @Override
    public String toString() {
        return "new VClass[" + this.className + "] OPNUMBER[" + this.opDataNumber + "]";
    }
}

        ArraySwap parameters = environment.popArray(this.opDataNumber);

        //因为会影响堆栈，要先把对象拷贝出来
        OperateData[] list = new OperateData[parameters.length];
        for (int i = 0; i < list.length; i++) {
            list[i] = parameters.get(i);
        }

        OperateDataVirClass result = new OperateDataVirClass(className);
        environment.push(result);
        environment.programPointAddOne();
        result.initialInstance(environment, list, errorList, environment.isTrace());
    
<methods>public non-sealed void <init>() ,public abstract void execute(com.ql.util.express.RunEnvironment, List<java.lang.String>) throws java.lang.Exception,public java.lang.String getExceptionPrefix() ,public java.lang.Integer getLine() ,public com.ql.util.express.instruction.detail.Instruction setLine(java.lang.Integer) <variables>private java.lang.Integer line