该 TableDataProvider 实现包装对 JavaBeans 对象数组的访问。根据数组中的类是简单 Java 对象还是 JavaBeans 对象,数据提供器的字段键与 JavaBeans 对象的属性相对应,或者与列表中 Java 对象的公共成员字段相对应。如果列表中的类不是 JavaBeans 对象,则必须设置 includeFields 属性以使类的公共实例变量可作为字段进行访问。
该数据提供器通常用于包装数组,然后将其与表组件绑定在一起,就像绑定数据库表一样。
该数据提供器通过检查数组的基础组件数据类型来确定可用的字段。如果传入类型为 Object[] 的一个数组,其初始化代码如下所示,则实际对象类型的字段将不可用:
Map map = ...;
return new ObjectArrayDataProvider(map.values().toArray());
如果您知道数据都是 Foo 类型,请使用如下所示的代码:
Map map = ...;
return new ObjectArrayDataProvider
((Foo[]) map.values().toArray(new Foo[0]));
此数据提供器是若干个 TableDataProvider 实现之一,这些实现使用光标概念,可以将光标放在基础数据中的特定行上。TableDataProvider 提供了随机访问(其中指定了 FieldKey 和 RowKey)以及基于光标的访问(其中指定了 FieldKey,RowKey 是由光标的当前设置决定的)。