java - Apache CollectionUtils 的良好用途

标签 java apache oop collections

我找到了CollectionUtils大约一年前的类(class),一些方法,比如收集和转换看起来真的很酷,但是,我还没有找到一种用途,它不会在语法上更清晰和/或更容易地用简单的代码编写逻辑环形。

有没有发现这些方法(转换、谓词集合、收集等)的独特\有用用途,例如采用转换器或谓词作为参数的方法?

最佳答案

我认为关键问题是设计/编码的灵活性。

如果您有一个用例(例如,选择满足某些特定条件的集合的成员),则可以手动编写一个相对简单的循环。另一方面...

假设可能的条件集变大,或者甚至可以在运行时动态组合(甚至是动态的,基于用户输入/交互)。或者假设有一些非常复杂的条件,可以用运算符(例如 A 和 B、C 而不是 D 等)组合成更多情况。

假设做出选择后,还要对结果集合进行一些其他处理。

现在考虑一下通过暴力、内联方法编写上述代码可能产生的代码结构:一个包含复杂决策过程的外部循环,用于确定要执行哪些测试,与代码混合在一起它对集合中“幸存”的成员执行一项或多项操作。此类代码往往(尤其是随着维护时间的推移而变得)难以理解,并且难以在不存在引入缺陷风险的情况下进行修改。

因此,关键是要采取一种策略,其中各个方面:

  • 基本的“选择某些内容”过程,
  • 表达基本标准的谓词,
  • 组合构成谓词的运算符,并且
  • 对值进行操作的变压器,

可以独立编码和测试,然后根据需要组合在一起。

关于java - Apache CollectionUtils 的良好用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/477012/

相关文章:

java - 重构巨大的 if ( ... instanceof ...)

php - UTF-8贯穿始终

php - 公共(public),私有(private)和 protected 之间有什么区别?

java - 编写异构集合时可以避免适配器类吗?

python - 使用 Python `isinstance` 是否正确?

java - 迭代解决方案的递归

java - 如何将两个映射合并为一个并保留重复值

java - 在 Java 中解码来自 VBScript 的转义字符串

php - wordpress中的index.php什么时候执行?

php - 本地主机抛出禁止错误并且某些目录只是空白