class OperatorField extends OperatorBase {
    private String filedName;

    public OperatorField() {
        this.name = "FieldCall";
    }

    public OperatorField(String fieldName) {
        this.name = "FieldCall";
        this.filedName = fieldName;
    }

    @Override
    public OperateData executeInner(InstructionSetContext parent, ArraySwap list) throws Exception {<FILL_FUNCTION_BODY>}

    @Override
    public String toString() {
        return this.name + ":" + this.filedName;
    }
}

        OperateData operateData = list.get(0);
        if (operateData == null && QLExpressRunStrategy.isAvoidNullPointer()) {
            return null;
        }
        Object obj = operateData.getObject(parent);
        return OperateDataCacheManager.fetchOperateDataField(obj, this.filedName);
    
<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