Bu konuda herhangi bir belge bulamıyorum. Bazı Lists
ve Maps
öğelerinde, öğelerin sırası rasgeledir ve listeye/haritaya eklendikleri sırayla aynı değildir.Var args hakkında doğru mu, yoksa gönderildikleri sırayla mı alınıyorlar?Java varargs'ları, verildikleri sırayla alındı mı?
Örneğim, bir alan adı ve bir kural listesi içeren bir form doğrulama yöntemine sahibim. Rules.INT, Rules.MAX.arg(100)
kurallarını sağlarsam, Rules.MAX
kuralı kontrol edilmeden önce Rules.MAX
kuralının kontrol edilmesinden önce Rules.INT
kuralının kontrol edilmesini isterim çünkü Rules.MAX
verilen değerin düzgün bir tamsayı olduğunu varsayar. Bu nedenle, Rules.INT
başarısız olursa, Rules.MAX
çağrılmayacaktı - ancak varargs rastgele bir sırada alınırsa, Rules.MAX
zaten Rules.INT
önce çağrılabilir ve değer tamsayı değilse bir istisna atar, Ben istemiyorum.
Düzenleme: Bu yöntem denilen eğer,
public boolean validate(String name, Rule... rules)
{
String value = getValue(name);
for (Rule rule : rules)
{
if (! rule.match(value))
return false;
}
return true;
}
Şimdi:: validate("age", Rule.INT, Rule.MAX.arg(100))
yılında Rule.MAX
önce Rule.INT
kontrol/iterated emin olabilir İşte benim yöntem açıklama için, var args ile var validate()
yöntemi?
Yanıt ilginizi çekebilir –
Cevabım evet, çünkü "Kural ..." eşdeğerdir "Kural []" ile aynı veri türü - yani sipariş ile bir dizi. – vikingsteve
Cevap evet. Java, etrafındaki yöntem argümanlarını karıştırmaz. –