2

我正在考虑使用 Apache BeanUtils 来管理我项目中的一些数据结构。该任务适用于仅在运行时知道的任意路径,以从列表中删除项目。

我想我可以使用 BeanUtils 通过这样的调用将项目设置为 null:

PropertyUtils.setProperty(myObject, "subitem.aList[3]", null);

然而,在我项目的其他领域,有循环遍历这些列表。当前未处理列表中有一个空项目。有很多(几十个,可能是几百个)地方的代码期望这些项目不为空,因此不幸的是,为所有可能遍历这些列表的代码添加空检查是不切实际的。

是否可以使用BeanUtils从集合中删除项目而不是将其设置为空?

我想我可以通过解析传递给的路径并通过查找以结尾的路径然后解析数字、获取列表的路径并调用来setProperty确定它是否为 a来实现这一点。在推出自己的解决方案之前,我想使用现有的解决方案。List[<number>]Listremove(number)

4

1 回答 1

0

我想您可以通过以下两个步骤来实现您的结果:

    List aList = (List)PropertyUtils.getProperty(myObject, "subitem.aList");
    aList.remove(3); // remove the fourth element

    //set the modified list back
    PropertyUtils.setProperty(myObject, "subitem.aList", aList);
于 2012-10-05T16:33:47.537 回答