class NullBeanSerializerModifierImpl extends BeanSerializerModifier {
    private JsonProps jsonProps;
    public NullBeanSerializerModifierImpl(JsonProps jsonProps){
        this.jsonProps = jsonProps;
    }

    @Override
    public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc, List<BeanPropertyWriter> beanProperties) {<FILL_FUNCTION_BODY>}

    /**
     * 是否是数组
     */
    private boolean isArrayType(BeanPropertyWriter writer) {
        Class<?> clazz = writer.getType().getRawClass();
        return clazz.isArray() || Collection.class.isAssignableFrom(clazz);
    }

    /**
     * 是否是string
     */
    private boolean isStringType(BeanPropertyWriter writer) {
        Class<?> clazz = writer.getType().getRawClass();
        return CharSequence.class.isAssignableFrom(clazz) || Character.class.isAssignableFrom(clazz);
    }


    /**
     * 是否是int
     */
    private boolean isNumberType(BeanPropertyWriter writer) {
        Class<?> clazz = writer.getType().getRawClass();
        return Number.class.isAssignableFrom(clazz);
    }

    /**
     * 是否是boolean
     */
    private boolean isBooleanType(BeanPropertyWriter writer) {
        Class<?> clazz = writer.getType().getRawClass();
        return clazz.equals(Boolean.class);
    }

}

        //循环所有的beanPropertyWriter
        for (Object beanProperty : beanProperties) {
            BeanPropertyWriter writer = (BeanPropertyWriter) beanProperty;

            if (isArrayType(writer)) {
                writer.assignNullSerializer(new NullValueSerializer(jsonProps,  writer.getType()));
            } else if (isNumberType(writer)) {
                writer.assignNullSerializer(new NullValueSerializer(jsonProps,  writer.getType()));
            } else if (isBooleanType(writer)) {
                writer.assignNullSerializer(new NullValueSerializer(jsonProps,  writer.getType()));
            } else if (isStringType(writer)) {
                writer.assignNullSerializer(new NullValueSerializer(jsonProps,  writer.getType()));
            }
        }

        return super.changeProperties(config, beanDesc, beanProperties);
    
<methods>public void <init>() ,public List<com.fasterxml.jackson.databind.ser.BeanPropertyWriter> changeProperties(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.BeanDescription, List<com.fasterxml.jackson.databind.ser.BeanPropertyWriter>) ,public JsonSerializer<?> modifyArraySerializer(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.type.ArrayType, com.fasterxml.jackson.databind.BeanDescription, JsonSerializer<?>) ,public JsonSerializer<?> modifyCollectionLikeSerializer(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.type.CollectionLikeType, com.fasterxml.jackson.databind.BeanDescription, JsonSerializer<?>) ,public JsonSerializer<?> modifyCollectionSerializer(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.type.CollectionType, com.fasterxml.jackson.databind.BeanDescription, JsonSerializer<?>) ,public JsonSerializer<?> modifyEnumSerializer(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.JavaType, com.fasterxml.jackson.databind.BeanDescription, JsonSerializer<?>) ,public JsonSerializer<?> modifyKeySerializer(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.JavaType, com.fasterxml.jackson.databind.BeanDescription, JsonSerializer<?>) ,public JsonSerializer<?> modifyMapLikeSerializer(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.type.MapLikeType, com.fasterxml.jackson.databind.BeanDescription, JsonSerializer<?>) ,public JsonSerializer<?> modifyMapSerializer(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.type.MapType, com.fasterxml.jackson.databind.BeanDescription, JsonSerializer<?>) ,public JsonSerializer<?> modifySerializer(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.BeanDescription, JsonSerializer<?>) ,public List<com.fasterxml.jackson.databind.ser.BeanPropertyWriter> orderProperties(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.BeanDescription, List<com.fasterxml.jackson.databind.ser.BeanPropertyWriter>) ,public com.fasterxml.jackson.databind.ser.BeanSerializerBuilder updateBuilder(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.BeanDescription, com.fasterxml.jackson.databind.ser.BeanSerializerBuilder) <variables>