2014-11-05 2 views
0

Если я объявляю новый список, как это:Реализация стандартного списка Java по умолчанию?

List<String> listExample = someFunction(); 

, что список интерфейсов реализация будет использоваться?

EDIT: Спасибо за ответы. Что считается чистым способом сделать это, должен ли я всегда объявлять список новыми?

+8

Это полностью зависит от того, что возвращает 'someFunction()'. – Eran

+2

Вызвать 'getClass()' на 'listExample' и узнать. –

ответ

4

Как Эран отметил, что полностью зависит от того, что someFunction(); возвращает .Both ArrayList<E> и LinkedList реализует интерфейс List.

Вы можете попробовать,

System.out.println("" + listExample.getClass()); 

, чтобы узнать, который был реализован. Из docs,

public final Class<?> getClass() 

Возвращает класс выполнения этого объекта. Возвращаемый объект класса - объект, который заблокирован статическими синхронизированными методами класса .

0

например, если u дает Список listExample = новый ArrayList(); Затем объект будет создан для ArrayList, а список - только экземпляр listExample.

и вы можете использовать GetClass() для того, чтобы посмотреть listExample

+0

Я думаю, что вы отвечаете на другой вопрос, чем он спросил. – ajb

1

Что бы вы ни строили, например, LinkedList, ArrayList, Vector, Stack in и return from someFunction() будет реализован с помощью listexample. Если вы используете ссылку на интерфейс List, у нее есть одно преимущество: вы можете назначить для него любой тип объекта (LinkedList, ArrayList, Vector, Stack).

Смежные вопросы