Ben varargs ile bir yönteme (benim durumumda bir int[]
olarak) ilkel bir dizi geçiş yapmaya çalışan sıkıştım.Varargs olarak bir dizi ilkel nasıl geçilir?
Diyelim ki:
// prints: 1 2
System.out.println(String.format("%s %s", new String[] { "1", "2"}));
// fails with java.util.MissingFormatArgumentException: Format specifier '%s'
System.out.println(String.format("%s %s", new int[] { 1, 2 }));
Not Ancak ilk satırı aşağıdaki uyarıyı aldığını:
Tipi String [] yöntem biçimine son argüman (String, Object ...) tam olarak vararg parametre türüyle eşleşmiyor. Varargs çağrısını onaylamak için Nesne [] 'ye yayınlayın veya varargs çağırma için Object türündeki bağımsız argümanları iletin.
Not da ben girişi bir kurucu ile dizi yapmak, ama kimin imzası ben değiştiremem, gibi kapsayan yöntemi onu alıyorum:
private String myFormat(int[] ints) {
// whatever format it is, it's just an example, assuming the number of ints
// is greater than the number of the format specifiers
return String.format("%s %s %s %s", ints);
}
not. Onun java.lang.String' bir nethod. – 31piy
'String.format' ifadesini nasıl oluşturuyorsunuz? Sabit sayıda% s parametresi içeriyor mu? Eğer öyleyse, bir dizi yerine sabit sayıda parametre de içerebilir. Gerekli 'int's sayısını bilmek ise – Eran
gibi, onları yazım: 'String.fromat (int "% d% d"[0], int [1])', o 'int's olarak autoboxed olacak ... –