Предисловие: этот вопрос задан здесь, но мне интересно конкретно о конкретном значении автора.
Я читаю "Мышление в Java", 3-е изд. Версия 4.0 и Eckel показывает этот фрагмент в главе 4 "Инициализация и очистка":
public class ArrayInit
{
public static void main(String[] args)
{
Integer[] a =
{
new Integer(1),
new Integer(2),
new Integer(3),
};
Integer[] b = new Integer[]
{
new Integer(1),
new Integer(2),
new Integer(3),
};
}
}
И указывает следующее:
Первая форма полезна время от времени, но ее более ограниченная, так как размер массива определяется во время компиляции.
Вторая форма обеспечивает удобный синтаксис для создания и вызова методов, которые могут создавать тот же эффект, что и списки переменных переменных Cs (так называемые" varargs" на C). Они могут включать неизвестные количества аргументов, а также неизвестные типы.
Я никогда не знал, что они отличаются друг от друга, как описывает Эккель. Насколько я понимаю, это оба массива статического размера. Я не понимаю, как первый более "ограничен", чем второй.
О чем он говорит?