我找不到有关此问题的任何文档。
在某些Lists
andMaps
中,元素的顺序是随机的,并且与它们添加到列表/映射中的顺序不同。var args 是这样吗,还是按照与发送时相同的顺序接收它们?
例如,我有一个表单验证方法,它接受一个字段名称和一个可变参数规则列表。如果我提供 rules: Rules.INT, Rules.MAX.arg(100)
,那么我希望在检查规则Rules.INT
之前先检查Rules.MAX
规则,因为Rules.MAX
假定给定值是一个正确的整数。因此,如果Rules.INT
失败,则Rules.MAX
不会被调用-但是,如果以随机顺序接收可变参数,则无论如何都Rules.MAX
可能会被调用Rules.INT
,然后如果值不是整数,则可能引发异常,这是我不知道的想。
编辑:为了澄清,这是我使用 var args 的方法:
public boolean validate(String name, Rule... rules)
{
String value = getValue(name);
for (Rule rule : rules)
{
if (! rule.match(value) )
return false;
}
return true;
}
现在,如果我通过: 调用此方法validate("age", Rule.INT, Rule.MAX.arg(100) )
,我可以确定在该方法Rule.INT
之前将对其进行迭代/检查吗?Rule.MAX
validate()