org.redkale.convert.bson

## 类 BsonReader

- java.lang.Object
- - org.redkale.convert.Reader
  - - org.redkale.convert.bson.BsonReader

- 直接已知子类:
    BsonByteBufferReader

      public class BsonReader
      extends Reader

  详情见: https://redkale.org

- - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `protected int` | `position`
    `static byte` | `SIGN_HASNEXT`
    `static byte` | `SIGN_NONEXT`
    `static short` | `SIGN_OBJECTB`
    `static short` | `SIGN_OBJECTE`
    `protected byte` | `typeval`
    `static byte` | `VERBOSE_NO`
    `static byte` | `VERBOSE_YES`

    - ### 从类继承的字段 org.redkale.convert.Reader

      `fieldIndex, SIGN_NOLENGTH, SIGN_NULL`

  - ### 构造器概要

    构造器
    构造器和说明
    `BsonReader()`
    `BsonReader(byte[] bytes)`
    `BsonReader(byte[] bytes, int start, int len)`

  - ### 方法概要

    所有方法 静态方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `close()`
    `static ObjectPool<BsonReader>` | `createPool(int max)`
    `protected byte` | `currentByte()`
    `boolean` | `hasNext()` 判断对象是否存在下一个属性或者数组是否存在下一个元素
    `int` | `readArrayB()` 判断下一个非空白字节是否为[
    `void` | `readArrayE()` 读取数组的尾端
    `void` | `readBlank()` 判断下一个非空白字节是否:
    `boolean` | `readBoolean()` 读取一个boolean值
    `byte` | `readByte()` 读取一个byte值
    `char` | `readChar()` 读取一个char值
    `java.lang.String` | `readClassName()` 读取反解析对象的类名
    `double` | `readDouble()` 读取一个double值
    `DeMember` | `readFieldName(DeMember[] members)` 根据字段读取字段对应的DeMember
    `float` | `readFloat()` 读取一个float值
    `int` | `readInt()` 读取一个int值
    `long` | `readLong()` 读取一个long值
    `int` | `readMapB()` 读取map的开头并返回map的size
    `void` | `readMapE()` 读取数组的尾端
    `java.lang.String` | `readObjectB(java.lang.Class clazz)` 读取对象的类名， 返回 null 表示对象为null， 返回空字符串表示当前class与返回的class一致，返回非空字符串表示class是当前class的子类。
    `void` | `readObjectE(java.lang.Class clazz)` 读取对象的尾端
    `short` | `readShort()` 读取一个short值
    `java.lang.String` | `readSmallString()` 读取无转义字符长度不超过255的字符串， 例如枚举值、字段名、类名字符串等
    `java.lang.String` | `readString()` 读取一个String值
    `protected boolean` | `recycle()`
    `void` | `setBytes(byte[] bytes)`
    `void` | `setBytes(byte[] bytes, int start, int len)`
    `void` | `skipValue()` 跳过属性的值

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 字段详细资料

    - #### SIGN_OBJECTB

          public static final short SIGN_OBJECTB

      另请参阅:
        常量字段值

    - #### SIGN_OBJECTE

          public static final short SIGN_OBJECTE

      另请参阅:
        常量字段值

    - #### SIGN_HASNEXT

          public static final byte SIGN_HASNEXT

      另请参阅:
        常量字段值

    - #### SIGN_NONEXT

          public static final byte SIGN_NONEXT

      另请参阅:
        常量字段值

    - #### VERBOSE_NO

          public static final byte VERBOSE_NO

      另请参阅:
        常量字段值

    - #### VERBOSE_YES

          public static final byte VERBOSE_YES

      另请参阅:
        常量字段值

    - #### typeval

          protected byte typeval

    - #### position

          protected int position

  - ### 构造器详细资料

    - #### BsonReader

          public BsonReader()

    - #### BsonReader

          public BsonReader(byte[] bytes)

    - #### BsonReader

          public BsonReader(byte[] bytes,
                            int start,
                            int len)

  - ### 方法详细资料

    - #### createPool

          public static ObjectPool<BsonReader> createPool(int max)

    - #### setBytes

          public final void setBytes(byte[] bytes)

    - #### setBytes

          public final void setBytes(byte[] bytes,
                                     int start,
                                     int len)

    - #### recycle

          protected boolean recycle()

    - #### close

          public void close()

    - #### skipValue

          public final void skipValue()

      跳过属性的值
      指定者:
        `skipValue` 在类中 `Reader`

    - #### readObjectB

          public final java.lang.String readObjectB(java.lang.Class clazz)

      从类复制的说明: `Reader`
      读取对象的类名， 返回 null 表示对象为null， 返回空字符串表示当前class与返回的class一致，返回非空字符串表示class是当前class的子类。
      覆盖:
        `readObjectB` 在类中 `Reader`
      参数:
        `clazz` - 类名
      返回:
        返回字段数

    - #### readObjectE

          public final void readObjectE(java.lang.Class clazz)

      从类复制的说明: `Reader`
      读取对象的尾端
      指定者:
        `readObjectE` 在类中 `Reader`
      参数:
        `clazz` - 类名

    - #### currentByte

          protected byte currentByte()

    - #### readMapB

          public final int readMapB()

      从类复制的说明: `Reader`
      读取map的开头并返回map的size
      指定者:
        `readMapB` 在类中 `Reader`
      返回:
        返回map的size

    - #### readMapE

          public final void readMapE()

      从类复制的说明: `Reader`
      读取数组的尾端
      指定者:
        `readMapE` 在类中 `Reader`

    - #### readArrayB

          public int readArrayB()

      判断下一个非空白字节是否为[
      指定者:
        `readArrayB` 在类中 `Reader`
      返回:
        数组长度或SIGN_NULL

    - #### readArrayE

          public final void readArrayE()

      从类复制的说明: `Reader`
      读取数组的尾端
      指定者:
        `readArrayE` 在类中 `Reader`

    - #### readBlank

          public final void readBlank()

      判断下一个非空白字节是否:
      指定者:
        `readBlank` 在类中 `Reader`

    - #### hasNext

          public final boolean hasNext()

      判断对象是否存在下一个属性或者数组是否存在下一个元素
      指定者:
        `hasNext` 在类中 `Reader`
      返回:
        是否存在

    - #### readFieldName

          public final DeMember readFieldName(DeMember[] members)

      从类复制的说明: `Reader`
      根据字段读取字段对应的DeMember
      指定者:
        `readFieldName` 在类中 `Reader`
      参数:
        `members` - DeMember的全量集合
      返回:
        匹配的DeMember

    - #### readBoolean

          public boolean readBoolean()

      从类复制的说明: `Reader`
      读取一个boolean值
      指定者:
        `readBoolean` 在类中 `Reader`
      返回:
        boolean值

    - #### readByte

          public byte readByte()

      从类复制的说明: `Reader`
      读取一个byte值
      指定者:
        `readByte` 在类中 `Reader`
      返回:
        byte值

    - #### readChar

          public char readChar()

      从类复制的说明: `Reader`
      读取一个char值
      指定者:
        `readChar` 在类中 `Reader`
      返回:
        char值

    - #### readShort

          public short readShort()

      从类复制的说明: `Reader`
      读取一个short值
      指定者:
        `readShort` 在类中 `Reader`
      返回:
        short值

    - #### readInt

          public int readInt()

      从类复制的说明: `Reader`
      读取一个int值
      指定者:
        `readInt` 在类中 `Reader`
      返回:
        int值

    - #### readLong

          public long readLong()

      从类复制的说明: `Reader`
      读取一个long值
      指定者:
        `readLong` 在类中 `Reader`
      返回:
        long值

    - #### readFloat

          public final float readFloat()

      从类复制的说明: `Reader`
      读取一个float值
      指定者:
        `readFloat` 在类中 `Reader`
      返回:
        float值

    - #### readDouble

          public final double readDouble()

      从类复制的说明: `Reader`
      读取一个double值
      指定者:
        `readDouble` 在类中 `Reader`
      返回:
        double值

    - #### readClassName

          public final java.lang.String readClassName()

      从类复制的说明: `Reader`
      读取反解析对象的类名
      指定者:
        `readClassName` 在类中 `Reader`
      返回:
        类名

    - #### readSmallString

          public java.lang.String readSmallString()

      从类复制的说明: `Reader`
      读取无转义字符长度不超过255的字符串， 例如枚举值、字段名、类名字符串等
      指定者:
        `readSmallString` 在类中 `Reader`
      返回:
        String值

    - #### readString

          public java.lang.String readString()

      从类复制的说明: `Reader`
      读取一个String值
      指定者:
        `readString` 在类中 `Reader`
      返回:
        String值