提供以下课程
public class Inventory {
private InventoryHeader header;
private List<InventoryLine> lines;
}
public class InventoryHeader {
private String date;
private boolean isCurrent;
}
public class InventoryLine {
private String itemName;
private int quantity;
}
和以下CSV(使用','作为分隔符,但为了便于查看,我在此处使用了空格):
IH 2007-06-05 false
IL Watch 7
IL Flower Pot 9
IL Chicken Wing 29
IH 2010-07-30 true
IL Cable 200
IL Fish Tank 87
在这种情况下,“ IH”表示此行是库存标头,而“ IL”表示它是库存行。库存标题后的库存行仅与该库存有关。库存对象的结尾用新的库存标题行或文件的结尾表示。
我想将其解析为一个列表。解析单个Inventory对象非常简单,只需在第0列上添加ValueSwitch,为InventoryHeader和InventoryLine创建BeanListProcessor,然后将结果添加到新的Inventory对象中即可。
使用上述方法,我们将获得标题和行的列表,但是如何知道哪些行与哪些标题相对应?
答案 0 :(得分:0)
此处是库的作者。检查this example,因为它似乎与您的情况非常相似。
您需要重写rowProcessorSwitched
的{{1}}方法,以了解解析器何时开始处理其他行格式。
类似这样的东西:
InputValueSwitch
希望这会有所帮助。