我不确定我是否完全理解您要做什么,但根据我收集的信息,您希望以一种允许您稍后从中制作结构化表格的方式存储任意数据行。在这种情况下(假设您使用 Java)我会做一个非常简单的Column
接口,它只有一个“值”属性:
public interface Column {
String value;
}
然后,您可以通过实现来制作列Column
:
public class Key implements Column {
String value = new String();
public Key(String keyValue){
this.value = keyValue;
}
}
因此,您可以创建一个名为DataRow
(或任何您喜欢的)的类,其对象将包含实际数据。例如,您可以在该类中有一个允许您添加数据的方法:
public class DataRow {
List<Column> data = new ArrayList<Column>();
public DataRow(String key){
this.setColumn(new Key(key));
}
public void setColumn(Column columnData) {
this.data.add(columnData);
}
public Column getColumn(Class column){
for(Column c : this.data){
if(c.getClass().equals(column)){
return c;
}
}
return null;
}
}
如您所见,您可以setColumn()
通过给它一个新Column
对象来调用该方法。这将允许您向DataRow
对象添加任何您喜欢的任何类型的数据。然后,要制作一些表,您可以有一个函数,该函数采用 a List
ofDataRows
和 a List
of 类,然后仅返回具有指定行中的数据的对象:
public List<DataRow> createTable(List<DataRow> data, List<Class<? extends Column>> columns){
List<DataRow> table = new ArrayList<DataRow>();
for(DataRow row : data){
DataRow ret = new DataRow(row.getColumn(Key.class).value);
for(Class column : columns){
if(row.getColumn(column.getClass()) != null )ret.setColumn(row.getColumn(column.getClass()));
}
table.add(ret);
}
return table;
}
这将允许您使用您的数据“创建”表,以及要包含在表中的列。
请注意,我编写此代码是为了传达一个想法,目前它非常混乱。但我希望这会对你有所帮助。