private Object getValueFromCSONElement(IElementValue element){
        //new Array[AnyRef]()
        Object ret = null;
        try {
            if (element instanceof CSONElement){
                ret = ((CSONElement)element).getValue();
            }else if(element instanceof CSONComplexElement){
                IEntitySchema elementSchema = ((CSONComplexElement)element).getSchema();
                Class objType = elementSchema.objType();
                String elementClassName = elementSchema.entityId();
                Field[] elementFieldInfo = EntitySchemaCache.getFiCache(elementClassName);
                ret = objType.newInstance();
                int i = 0;
                Method[] methods =  EntitySchemaCache.getFiSetCache(elementClassName);
                for (Method setter:methods){
                    if (elementFieldInfo[i].getType().isEnum()) {
                        CSONComplexElement csonComplexElement = (CSONComplexElement)element;
                        int a = (int)csonComplexElement.getValue(i);
                        //通过setter获取枚举的类型
                        //Type[] params = setter.getGenericParameterTypes();
                        Class clazz = elementFieldInfo[i].getType();
                        //获取枚举类型的static values函数
                        Method values = ((Class)clazz).getDeclaredMethod("values");
                        //调用values函数，获取所有的枚举项目
                        Object object = values.invoke((Class)clazz);
                        Object[] objects = (Object[]) object;
                        //Method ordinal = Enum.class.getDeclaredMethod("ordinal");
                        Object enumObj= objects[a];
                        //依次调用枚举项的ordinal函数，判断其是否与所存储数据相同，进行匹配
                        //for (Object en:objects){
                        //   Object res = ordinal.invoke(en);
                        //    if (a == (Integer)res){
                        //        enumObj = en;
                        //    }
                        //}
                        setter.invoke(ret,enumObj);
                    }else{
                        CSONComplexElement complexElement = (CSONComplexElement)element;
                        setter.invoke(ret, (Object)getValueFromCSONElement(complexElement.getElement(i)));
                    }
                    i+=1;
                }
            }else if(element instanceof CSONArrayElement){
                IEntitySchema elementSchema = ((CSONArrayElement)element).getSchema();
                if (elementSchema!=null){
                    ret = getComplexElementArray((CSONArrayElement)element,elementSchema.objType());
                }
                else ret = ((CSONArrayType)((CSONArrayElement)element).elementType()).getElementType().writeArrayValue.apply((CSONArrayElement) element);
            }
        }catch (InstantiationException e){
            e.printStackTrace();
        }catch (IllegalAccessException e){
            e.printStackTrace();
        }catch (Exception e){
            e.printStackTrace();
        }
        return ret;
    }