class ObjectReaderImplMapEntry
        extends ObjectReaderPrimitive {
    final Type keyType;
    final Type valueType;

    volatile ObjectReader keyReader;
    volatile ObjectReader valueReader;

    public ObjectReaderImplMapEntry(Type keyType, Type valueType) {
        super(Map.Entry.class);
        this.keyType = keyType;
        this.valueType = valueType;
    }

    @Override
    public Object readJSONBObject(JSONReader jsonReader, Type fieldType, Object fieldName, long features) {
        int entryCnt = jsonReader.startArray();
        if (entryCnt != 2) {
            throw new JSONException(jsonReader.info("entryCnt must be 2, but " + entryCnt));
        }
        Object key;
        if (keyType == null) {
            key = jsonReader.readAny();
        } else {
            if (keyReader == null) {
                keyReader = jsonReader.getObjectReader(keyType);
            }
            key = keyReader.readObject(jsonReader, fieldType, fieldName, features);
        }

        Object value;
        if (valueType == null) {
            value = jsonReader.readAny();
        } else {
            if (valueReader == null) {
                valueReader = jsonReader.getObjectReader(valueType);
            }
            value = valueReader.readObject(jsonReader, fieldType, fieldName, features);
        }

        return new AbstractMap.SimpleEntry(key, value);
    }

    @Override
    public Object readObject(JSONReader jsonReader, Type fieldType, Object fieldName, long features) {<FILL_FUNCTION_BODY>}
}

        jsonReader.nextIfObjectStart();
        Object key = jsonReader.readAny();
        jsonReader.nextIfMatch(':');

        Object value;
        if (valueType == null) {
            value = jsonReader.readAny();
        } else {
            if (valueReader == null) {
                valueReader = jsonReader.getObjectReader(valueType);
            }
            value = valueReader.readObject(jsonReader, fieldType, fieldName, features);
        }

        jsonReader.nextIfObjectEnd();
        jsonReader.nextIfComma();
        return new AbstractMap.SimpleEntry(key, value);
    
<methods>public void <init>(Class#RAW) ,public java.lang.Object createInstance(long) ,public Class#RAW getObjectClass() ,public abstract java.lang.Object readJSONBObject(com.alibaba.fastjson2.JSONReader, java.lang.reflect.Type, java.lang.Object, long) <variables>protected final non-sealed Class#RAW objectClass