当前位置: 首页>>代码示例>>Java>>正文


Java FieldInfo.getAnnotation方法代码示例

本文整理汇总了Java中com.alibaba.fastjson.util.FieldInfo.getAnnotation方法的典型用法代码示例。如果您正苦于以下问题:Java FieldInfo.getAnnotation方法的具体用法?Java FieldInfo.getAnnotation怎么用?Java FieldInfo.getAnnotation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.alibaba.fastjson.util.FieldInfo的用法示例。


在下文中一共展示了FieldInfo.getAnnotation方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createFieldDeserializer

import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
public FieldDeserializer createFieldDeserializer(ParserConfig mapping, //
                                                 JavaBeanInfo beanInfo, //
                                                 FieldInfo fieldInfo) {
    Class<?> clazz = beanInfo.clazz;
    Class<?> fieldClass = fieldInfo.fieldClass;

    Class<?> deserializeUsing = null;
    JSONField annotation = fieldInfo.getAnnotation();
    if (annotation != null) {
        deserializeUsing = annotation.deserializeUsing();
        if (deserializeUsing == Void.class) {
            deserializeUsing = null;
        }
    }

    if (deserializeUsing == null && (fieldClass == List.class || fieldClass == ArrayList.class)) {
        return new ArrayListTypeFieldDeserializer(mapping, clazz, fieldInfo);
    }

    return new DefaultFieldDeserializerBug569(mapping, clazz, fieldInfo);
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:22,代码来源:ParserConfigBug569.java

示例2: FieldSerializer

import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
public FieldSerializer(FieldInfo fieldInfo) {
    int i = 0;
    this.fieldInfo = fieldInfo;
    fieldInfo.setAccessible(true);
    this.double_quoted_fieldPrefix = '\"' + fieldInfo.getName() + "\":";
    this.single_quoted_fieldPrefix = '\'' + fieldInfo.getName() + "':";
    this.un_quoted_fieldPrefix = fieldInfo.getName() + ":";
    JSONField annotation = (JSONField) fieldInfo.getAnnotation(JSONField.class);
    if (annotation != null) {
        SerializerFeature[] serialzeFeatures = annotation.serialzeFeatures();
        int length = serialzeFeatures.length;
        while (i < length) {
            if (serialzeFeatures[i] == SerializerFeature.WriteMapNullValue) {
                this.writeNull = true;
            }
            i++;
        }
    }
}
 
开发者ID:JackChan1999,项目名称:boohee_v5.6,代码行数:20,代码来源:FieldSerializer.java

示例3: FieldSerializer

import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
public FieldSerializer(FieldInfo fieldInfo){
    super();
    this.fieldInfo = fieldInfo;
    fieldInfo.setAccessible(true);

    this.double_quoted_fieldPrefix = '"' + fieldInfo.getName() + "\":";

    this.single_quoted_fieldPrefix = '\'' + fieldInfo.getName() + "\':";

    this.un_quoted_fieldPrefix = fieldInfo.getName() + ":";

    JSONField annotation = fieldInfo.getAnnotation(JSONField.class);
    if (annotation != null) {
        for (SerializerFeature feature : annotation.serialzeFeatures()) {
            if (feature == SerializerFeature.WriteMapNullValue) {
                writeNull = true;
            }
        }
    }
}
 
开发者ID:uavorg,项目名称:uavstack,代码行数:21,代码来源:FieldSerializer.java

示例4: _enum

import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
private void _enum(Class<?> cls, MethodVisitor mw, FieldInfo property, Context context) {
    boolean writeEnumUsingToString = false;
    JSONField annotation = (JSONField) property.getAnnotation(JSONField.class);
    if (annotation != null) {
        for (SerializerFeature feature : annotation.serialzeFeatures()) {
            if (feature == SerializerFeature.WriteEnumUsingToString) {
                writeEnumUsingToString = true;
            }
        }
    }
    Label _not_null = new Label();
    Label _end_if = new Label();
    Label _end = new Label();
    _nameApply(mw, property, context, _end);
    _get(mw, context, property);
    mw.visitTypeInsn(192, "java/lang/Enum");
    mw.visitVarInsn(58, context.var("enum"));
    _filters(mw, property, context, _end);
    mw.visitVarInsn(25, context.var("enum"));
    mw.visitJumpInsn(199, _not_null);
    _if_write_null(mw, property, context);
    mw.visitJumpInsn(167, _end_if);
    mw.visitLabel(_not_null);
    mw.visitVarInsn(25, context.var("out"));
    mw.visitVarInsn(21, context.var("seperator"));
    mw.visitVarInsn(25, context.fieldName());
    mw.visitVarInsn(25, context.var("enum"));
    if (writeEnumUsingToString) {
        mw.visitMethodInsn(182, "java/lang/Object", "toString", "()Ljava/lang/String;");
        mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue", "(CLjava/lang/String;Ljava/lang/String;)V");
    } else {
        mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue", "(CLjava/lang/String;Ljava/lang/Enum;)V");
    }
    _seperator(mw, context);
    mw.visitLabel(_end_if);
    mw.visitLabel(_end);
}
 
开发者ID:JackChan1999,项目名称:boohee_v5.6,代码行数:38,代码来源:ASMSerializerFactory.java

示例5: ObjectFieldSerializer

import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
public ObjectFieldSerializer(FieldInfo fieldInfo){
    super(fieldInfo);

    JSONField annotation = fieldInfo.getAnnotation(JSONField.class);

    if (annotation != null) {
        format = annotation.format();

        if (format.trim().length() == 0) {
            format = null;
        }

        for (SerializerFeature feature : annotation.serialzeFeatures()) {
            if (feature == SerializerFeature.WriteNullNumberAsZero) {
                writeNumberAsZero = true;
            } else if (feature == SerializerFeature.WriteNullStringAsEmpty) {
                writeNullStringAsEmpty = true;
            } else if (feature == SerializerFeature.WriteNullBooleanAsFalse) {
                writeNullBooleanAsFalse = true;
            } else if (feature == SerializerFeature.WriteNullListAsEmpty) {
                writeNullListAsEmpty = true;
            } else if (feature == SerializerFeature.WriteEnumUsingToString) {
                writeEnumUsingToString = true;
            }else if(feature == SerializerFeature.WriteEnumUsingName){
                writeEnumUsingName = true;
            }
        }
    }
}
 
开发者ID:uavorg,项目名称:uavstack,代码行数:30,代码来源:ObjectFieldSerializer.java

示例6: _if_write_null

import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
private void _if_write_null(MethodVisitor mw, FieldInfo fieldInfo, Context context) {
    Class<?> propertyClass = fieldInfo.fieldClass;

    Label _if = new Label();
    Label _else = new Label();
    Label _write_null = new Label();
    Label _end_if = new Label();

    mw.visitLabel(_if);

    JSONField annotation = fieldInfo.getAnnotation();
    int features = 0;
    if (annotation != null) {
        features = SerializerFeature.of(annotation.serialzeFeatures());
        ;
    }

    int writeNullFeatures;
    if (propertyClass == String.class) {
        writeNullFeatures = SerializerFeature.WriteMapNullValue.getMask()
                | SerializerFeature.WriteNullStringAsEmpty.getMask();
    } else if (Number.class.isAssignableFrom(propertyClass)) {
        writeNullFeatures = SerializerFeature.WriteMapNullValue.getMask()
                | SerializerFeature.WriteNullNumberAsZero.getMask();
    } else if (Collection.class.isAssignableFrom(propertyClass)) {
        writeNullFeatures = SerializerFeature.WriteMapNullValue.getMask()
                | SerializerFeature.WriteNullListAsEmpty.getMask();
    } else if (Boolean.class == propertyClass) {
        writeNullFeatures = SerializerFeature.WriteMapNullValue.getMask()
                | SerializerFeature.WriteNullBooleanAsFalse.getMask();
    } else {
        writeNullFeatures = SerializerFeature.WRITE_MAP_NULL_FEATURES;
    }

    if ((features & writeNullFeatures) == 0) {
        mw.visitVarInsn(ALOAD, context.var("out"));
        mw.visitLdcInsn(writeNullFeatures);
        mw.visitMethodInsn(INVOKEVIRTUAL, SerializeWriter, "isEnabled", "(I)Z");
        mw.visitJumpInsn(IFEQ, _else);
    }

    mw.visitLabel(_write_null);

    mw.visitVarInsn(ALOAD, context.var("out"));
    mw.visitVarInsn(ILOAD, context.var("seperator"));
    mw.visitMethodInsn(INVOKEVIRTUAL, SerializeWriter, "write", "(I)V");

    _writeFieldName(mw, context);

    mw.visitVarInsn(ALOAD, context.var("out"));
    mw.visitLdcInsn(features);
    // features

    if (propertyClass == String.class || propertyClass == Character.class) {
        mw.visitLdcInsn(SerializerFeature.WriteNullStringAsEmpty.mask);
    } else if (Number.class.isAssignableFrom(propertyClass)) {
        mw.visitLdcInsn(SerializerFeature.WriteNullNumberAsZero.mask);
    } else if (propertyClass == Boolean.class) {
        mw.visitLdcInsn(SerializerFeature.WriteNullBooleanAsFalse.mask);
    } else if (Collection.class.isAssignableFrom(propertyClass) || propertyClass.isArray()) {
        mw.visitLdcInsn(SerializerFeature.WriteNullListAsEmpty.mask);
    } else {
        mw.visitLdcInsn(0);
    }
    mw.visitMethodInsn(INVOKEVIRTUAL, SerializeWriter, "writeNull", "(II)V");

    // seperator = ',';
    _seperator(mw, context);

    mw.visitJumpInsn(GOTO, _end_if);

    mw.visitLabel(_else);

    mw.visitLabel(_end_if);
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:76,代码来源:ASMSerializerFactory.java

示例7: _if_write_null

import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
private void _if_write_null(MethodVisitor mw, FieldInfo fieldInfo, Context context) {
    Class<?> propertyClass = fieldInfo.getFieldClass();
    Label _if = new Label();
    Label _else = new Label();
    Label _write_null = new Label();
    Label _end_if = new Label();
    mw.visitLabel(_if);
    boolean writeNull = false;
    boolean writeNullNumberAsZero = false;
    boolean writeNullStringAsEmpty = false;
    boolean writeNullBooleanAsFalse = false;
    boolean writeNullListAsEmpty = false;
    JSONField annotation = (JSONField) fieldInfo.getAnnotation(JSONField.class);
    if (annotation != null) {
        for (SerializerFeature feature : annotation.serialzeFeatures()) {
            if (feature == SerializerFeature.WriteMapNullValue) {
                writeNull = true;
            } else if (feature == SerializerFeature.WriteNullNumberAsZero) {
                writeNullNumberAsZero = true;
            } else if (feature == SerializerFeature.WriteNullStringAsEmpty) {
                writeNullStringAsEmpty = true;
            } else if (feature == SerializerFeature.WriteNullBooleanAsFalse) {
                writeNullBooleanAsFalse = true;
            } else if (feature == SerializerFeature.WriteNullListAsEmpty) {
                writeNullListAsEmpty = true;
            }
        }
    }
    if (!writeNull) {
        mw.visitVarInsn(25, context.var("out"));
        mw.visitFieldInsn(178, "com/alibaba/fastjson/serializer/SerializerFeature", "WriteMapNullValue", "Lcom/alibaba/fastjson/serializer/SerializerFeature;");
        mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "isEnabled", "(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z");
        mw.visitJumpInsn(153, _else);
    }
    mw.visitLabel(_write_null);
    mw.visitVarInsn(25, context.var("out"));
    mw.visitVarInsn(21, context.var("seperator"));
    mw.visitVarInsn(25, context.fieldName());
    if (propertyClass == String.class || propertyClass == Character.class) {
        if (writeNullStringAsEmpty) {
            mw.visitLdcInsn("");
            mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue", "(CLjava/lang/String;Ljava/lang/String;)V");
        } else {
            mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldNullString", "(CLjava/lang/String;)V");
        }
    } else if (Number.class.isAssignableFrom(propertyClass)) {
        if (writeNullNumberAsZero) {
            mw.visitInsn(3);
            mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue", "(CLjava/lang/String;I)V");
        } else {
            mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldNullNumber", "(CLjava/lang/String;)V");
        }
    } else if (propertyClass == Boolean.class) {
        if (writeNullBooleanAsFalse) {
            mw.visitInsn(3);
            mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue", "(CLjava/lang/String;Z)V");
        } else {
            mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldNullBoolean", "(CLjava/lang/String;)V");
        }
    } else if (!Collection.class.isAssignableFrom(propertyClass) && !propertyClass.isArray()) {
        mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldNull", "(CLjava/lang/String;)V");
    } else if (writeNullListAsEmpty) {
        mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldEmptyList", "(CLjava/lang/String;)V");
    } else {
        mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldNullList", "(CLjava/lang/String;)V");
    }
    _seperator(mw, context);
    mw.visitJumpInsn(167, _end_if);
    mw.visitLabel(_else);
    mw.visitLabel(_end_if);
}
 
开发者ID:JackChan1999,项目名称:boohee_v5.6,代码行数:72,代码来源:ASMSerializerFactory.java

示例8: _enum

import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
private void _enum(Class<?> clazz, MethodVisitor mw, FieldInfo property, Context context) {
    boolean writeEnumUsingToString = false;
    JSONField annotation = property.getAnnotation(JSONField.class);
    if (annotation != null) {
        for (SerializerFeature feature : annotation.serialzeFeatures()) {
            if (feature == SerializerFeature.WriteEnumUsingToString) {
                writeEnumUsingToString = true;
            }
        }
    }

    Label _not_null = new Label();
    Label _end_if = new Label();
    Label _end = new Label();

    _nameApply(mw, property, context, _end);
    _get(mw, context, property);
    mw.visitTypeInsn(CHECKCAST, "java/lang/Enum"); // cast
    mw.visitVarInsn(ASTORE, context.var("enum"));

    _filters(mw, property, context, _end);

    mw.visitVarInsn(ALOAD, context.var("enum"));
    mw.visitJumpInsn(IFNONNULL, _not_null);
    _if_write_null(mw, property, context);
    mw.visitJumpInsn(GOTO, _end_if);

    mw.visitLabel(_not_null);
    mw.visitVarInsn(ALOAD, context.var("out"));
    mw.visitVarInsn(ILOAD, context.var("seperator"));
    mw.visitVarInsn(ALOAD, context.fieldName());
    mw.visitVarInsn(ALOAD, context.var("enum"));

    if (writeEnumUsingToString) {
        mw.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "toString", "()Ljava/lang/String;");
        mw.visitMethodInsn(INVOKEVIRTUAL, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue",
                           "(CLjava/lang/String;Ljava/lang/String;)V");
    } else {
        mw.visitMethodInsn(INVOKEVIRTUAL, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue",
                           "(CLjava/lang/String;Ljava/lang/Enum;)V");
    }

    _seperator(mw, context);

    mw.visitLabel(_end_if);

    mw.visitLabel(_end);
}
 
开发者ID:uavorg,项目名称:uavstack,代码行数:49,代码来源:ASMSerializerFactory.java


注:本文中的com.alibaba.fastjson.util.FieldInfo.getAnnotation方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。