除了对这种构造函数的使用(需要)的回答之外,要关注 API 实现的正确性,应该真正考虑到大声调用的API 注意,以便在某些深思熟虑的考虑下创建此类实例作为(强调我的) -
如果count
为零,则忽略其余参数并构造一个空实例。
例子 -
var intsummstats = new IntSummaryStatistics();
// creates the following stat
=> IntSummaryStatistics{count=0, sum=0, min=2147483647, average=0.000000, max=-2147483648}
// and the following results into a similar stat as well
var anotherintsummstats = new IntSummaryStatistics(0, 12, 100, 1000);
=> IntSummaryStatistics{count=0, sum=0, min=2147483647, average=0.000000, max=-2147483648}
如果参数不一致,IllegalArgumentException
则抛出 an。必要的一致论证条件是:
但是由于这并不涵盖对用户可以输入的值的所有类型的检查,count
因此有这个语句(我在使用构造函数时发现)sum
max
min
参数正确性的强制执行意味着从*SummaryStatistics
源实例获取的检索记录值集可能不是此构造函数的合法参数集,因为源的记录值计数的算术溢出。一致的
参数条件不足以防止创建内部不一致的实例。这种状态的一个示例是 (IntSummaryStatistics) 实例,其中:count = 2、min = 1、max = 2 和 sum = 0。
combine
此外,当d 与 other时,此类错误创建的实例*SummaryStatistic
可能会进一步导致一组非法参数。