CodeSOD:参数数组
所提供的代码片段展示了一种有问题的编码实践,即使用 ArrayList 将多个参数传递到方法中。该方法期望 ArrayList 包含特定数据类型和预定顺序的值。这种方法牺牲了编译时类型检查,换来了潜在的运行时错误。设计此方法的理由是为了适应底层数据库未来可能发生的更改,而无需更改方法签名。然而,这绕过了诸如可选参数等标准语言特性,而可选参数将提供更安全、更易于维护的解决方案。开发者错误地认为以这种方式传递 ArrayList 可以使代码更具灵活性。这种将 ArrayList 用作参数包的模式在整个代码库中普遍存在。使用可选参数的替代方案将提供编译时安全性以及更清晰的意图。目前的实现依赖于对数据顺序和类型的隐式假设,导致代码脆弱。这种做法在软件开发中被认为是一种反模式。