Entity 接口基本介绍

在 Java API 中,Entity 接口是一切数据类型与数据形式的基础,Java API 中所有的数据类型与数据形式都与该接口存在着继承或向上转型的关系。因此,Entity 可以由 Java API 中定义的数据类型与数据形式实现,当然这些数据类型与数据形式也可以向上转型至 Entity。

以下数据形式接口均继承自 Entity 接口:Matrix、Scalar、Set、Table、Vector、Dictionary、Tensor。其中,Scalar 代表标量,Java API 中所有的数据类型(将在下一节数据类型中讲到)都是基于 Scalar 接口实现的。这样的设计,既符合设计模式的里氏替换原则和依赖倒置原则,也便捷了编码。

下例展示了如何通过 Java API 中定义的数据类型实现和向上转型为 Entity:

// Entity 由 BasicInt实现
Entity entity = new BasicInt(123);

// Entity 由 BasicInt向上转型而来
BasicInt basicInt = new BasicInt(456);
Entity entity1 = (Entity) basicInt;

扩展接口

根据 DolphinDB 的数据类型,Java API 在 Entity 接口类的基础上提供了 8 种拓展接口,分别是 scalar,vector,matrix,set,dictionary,table, chart 和 tensor。这些接口类都包含在 com.xxdb.data 包中。

拓展的接口类命名规则例子
scalar, tensorBasic<DataType>BasicInt, BasicDouble, BasicDate, etc.
vector, matrixBasic<DataType><DataForm>BasicIntVector, BasicDoubleMatrix, BasicAnyVector, etc.
set, dictionary, tableBasic<DataForm>BasicSet, BasicDictionary, BasicTable.
chartBasicChart

"Basic"表示基本的数据类型接口,<DataType>表示 DolphinDB 数据类型名称,<DataForm>是一个 DolphinDB 数据形式名称。

Entity 常用方法介绍

  1. DATA_FORM getDataForm();

    获取数据形式,数据形式包括:DF_SCALAR, DF_VECTOR, DF_PAIR, DF_MATRIX, DF_SET, DF_DICTIONARY, DF_TABLE, DF_CHART, DF_TENSOR, DF_CHUNK,DF_SYSOBJ。

    以常用的 BasicTable 为例,其数据形式为 DF_TABLE

  2. DATA_TYPE getDataType()

    获取数据类型,以 BasicBoolean 为例,其数据类型为 Entity.DATA_TYPE.DT_BOOL。

  3. int rows()

    • 对于 Vector 类型,返回 Vector 的长度。
    • 对于 BasicAnyVector,返回 Vector 的长度。
    • 对于 AbstractMatrix 类型,返回矩阵的行数。
    • 对于 BasicDictionary 类型,返回大小。
    • 对于 BasicSet 类型,返回大小。
    • 对于 BasicTable 类型,返回 columns 的大小。
  4. int columns()

    • 对于 AbstractMatrix,返回矩阵的列数。
    • 对于 BasicArrayVector,返回 Vector 的 rows。
    • 对于 BasicTable,返回 columns 的的大小。
  5. String getString()

    获取各数据类型的字符串类型的值。

  6. 此外,还提供各种 'isXXX' 开头的各种判断是否对应类型的方法,如:isScalar()、isVector()、isPair()、isTable()、isMatrix()、isDictionary()、isTensor()、isChart()、isChunk()。