public HashMap(int initialCapacity, float loadFactor) {
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal initial capacity: " +
initialCapacity);
if (initialCapacity > MAXIMUM_CAPACITY)
initialCapacity = MAXIMUM_CAPACITY;
if (loadFactor <= 0 || **Float.isNaN(loadFactor)**)
throw new IllegalArgumentException("Illegal load factor: " +
loadFactor);
this.loadFactor = loadFactor;
threshold = initialCapacity;
init();
}
如果loadFactor不是数字,那么在创建新的HashMap(int initialCapacity,float loadFactor)时,我们不会立即得到编译错误吗?
P.S。抱歉我的英文)
答案 0 :(得分:0)
编译时的错误检查不是免费的;有人必须实施它。碰巧这个特定的检查没有在编译器中实现,因为它不值得。
另请注意,虽然在某些情况下可以(在理论上)在编译时检测到此错误,但在许多情况下,将无法检测到此错误。例如,如果用户在运行时给出了该数字,则编译器无法检测到该数字。