gpt4 book ai didi

java - Java 可变参数的接收顺序是否与它们的接收顺序相同?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:02:09 25 4
gpt4 key购买 nike

我找不到关于这个问题的任何文档。

在某些ListsMaps 中,元素的顺序是随机的,与添加到列表/ map 中的顺序不同。 var args 是这样吗,还是它们的接收顺序与发送顺序相同?

例如,我有一个表单验证方法,它采用字段名称和可变参数规则列表。如果我提供规则: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 将在 validate() 方法中的 Rule.MAX 之前迭代/检查?

最佳答案

所有 方法参数都按指定的顺序接收,无论是可变参数还是其他方式。在幕后,可变参数是指定参数类型的数组,而不是任何可能打乱源文本顺序的集合。

关于java - Java 可变参数的接收顺序是否与它们的接收顺序相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19343554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com