String.format ()принимает массив в качестве единственного аргумента

Почему это работает нормально?:

String f = "Mi name is %s %s.";
System.out.println(String.format(f, "John", "Connor"));

А это нет?:

String f = "Mi name is %s %s.";
System.out.println(String.format(f, (Object)new String[]{"John","Connor"}));

Если метод String.format принимает объект vararg?

Он компилируется нормально, но когда я выполняю это, String.format ()принимает объект vararg как единственный уникальный аргумент (значение toString ()самого массива ), поэтому он генерирует исключение MissingFormatArgumentException, потому что он не может соответствует второму спецификатору строки (%s ).

Как я могу заставить его работать? Заранее спасибо, любая помощь будет принята с благодарностью.

12
задан mevqz 18 July 2012 в 05:46
поделиться