Другие ответы указывают на то, что массивы расширить Object
. Чтобы ответить на ваш последний вопрос:
Где используется массив для преобразования объектов?
Это редко используется, но один случай использования относится к varargs. Рассмотрим этот метод:
static void count(Object... objects) {
System.out.println("There are " + objects.length + " object(s).");
}
Для того, чтобы рассматривать один аргумент массива в качестве элемента из varags, вам нужно будет бросить в Object
:
String[] strings = {"s1", "s2", "s3"};
count(strings); //There are 3 object(s).
count((Object)strings); //There are 1 object(s).
Это происходит потому, что параметр переменные аргументы является массивом прежде всего, поэтому, когда это неоднозначно, компилятор рассматривает этот параметр массива таким образом. Upcasting to Object
указывает компилятору иначе.
+1 Или 'Object []'. –
тогда, где он используется? –
Я бы использовал это преобразование только тогда, когда мне пришлось поместить такой «String []» в коллекцию (или другой массив) из «Объектов», которая должна была содержать такие разнородные элементы, единственная общая их суть в том, что они все «Объекты» '. – rgettman