class FieldReaderCharValueField<T>
        extends FieldReaderObjectField<T> {
    FieldReaderCharValueField(
            String fieldName,
            int ordinal,
            long features,
            String format,
            Character defaultValue,
            JSONSchema schema,
            Field field
    ) {
        super(fieldName, char.class, char.class, ordinal, features, format, null, defaultValue, schema, field);
    }

    @Override
    public void readFieldValue(JSONReader jsonReader, T object) {
        char ch = jsonReader.readCharValue();
        if (ch == '\0' && jsonReader.wasNull()) {
            return;
        }

        accept(object, ch);
    }

    @Override
    public Object readFieldValue(JSONReader jsonReader) {
        String str = jsonReader.readString();
        return str == null || str.isEmpty() ? '\0' : str.charAt(0);
    }

    @Override
    public void accept(T object, Object value) {<FILL_FUNCTION_BODY>}
}

        char charValue;
        if (value instanceof String) {
            charValue = ((String) value).charAt(0);
        } else if (value instanceof Character) {
            charValue = (Character) value;
        } else {
            throw new JSONException("cast to char error");
        }
        accept(object, charValue);
    
<methods>public void accept(T, boolean) ,public void accept(T, byte) ,public void accept(T, short) ,public void accept(T, int) ,public void accept(T, long) ,public void accept(T, float) ,public void accept(T, double) ,public void accept(T, char) ,public void accept(T, java.lang.Object) <variables>