我找到了CollectionUtils大约一年前的类(class),一些方法,比如收集和转换看起来真的很酷,但是,我还没有找到一种用途,它不会在语法上更清晰和/或更容易地用简单的代码编写逻辑环形。
有没有发现这些方法(转换、谓词集合、收集等)的独特\有用用途,例如采用转换器或谓词作为参数的方法?
最佳答案
我认为关键问题是设计/编码的灵活性。
如果您有一个用例(例如,选择满足某些特定条件的集合的成员),则可以手动编写一个相对简单的循环。另一方面...
假设可能的条件集变大,或者甚至可以在运行时动态组合(甚至是动态的,基于用户输入/交互)。或者假设有一些非常复杂的条件,可以用运算符(例如 A 和 B、C 而不是 D 等)组合成更多情况。
假设做出选择后,还要对结果集合进行一些其他处理。
现在考虑一下通过暴力、内联方法编写上述代码可能产生的代码结构:一个包含复杂决策过程的外部循环,用于确定要执行哪些测试,与代码混合在一起它对集合中“幸存”的成员执行一项或多项操作。此类代码往往(尤其是随着维护时间的推移而变得)难以理解,并且难以在不存在引入缺陷风险的情况下进行修改。
因此,关键是要采取一种策略,其中各个方面:
- 基本的“选择某些内容”过程,
- 表达基本标准的谓词,
- 组合构成谓词的运算符,并且
- 对值进行操作的变压器,
可以独立编码和测试,然后根据需要组合在一起。
关于java - Apache CollectionUtils 的良好用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/477012/