2013-03-08 2 views
-1

В интервью, посвященном дженерикам, интервьюер задает вопрос о наличии двух списков, один список имеет тип String (то есть один arraylist имеет строковый тип), и мы добавляем в него несколько строк, теперь создать второй список массива, который будет по типу первого списка вы создали, теперь возможное решение было, как показано ниже ..дженерики с различным подходом

List<String> firstList = new ArrayList<String>(); 

public <T> List<T> createSecondList(List<T> firstList) 
{ 
    return new ArrayList<T>(); 
} 

мой запрос был мы можем выразить это ниже способ также пожалуйста посоветуйте.

List<String> firstList = new ArrayList<String>(); 
<T> List<T> createSecondList = new ArrayList(List<T> firstList); 
+0

вы спрашиваете о том, как назвать обобщен метод или, как еще мы можем представить его? –

+0

Первый подход - это способ сделать это. Ваш второй пример (если он скомпилирован) не очень полезен: когда вы его вызываете, вы знаете тип исходного списка, поэтому вам не нужны дженерики. – assylias

ответ

5

No.

Эта линия:

<T> List<T> createSecondList = new ArrayList(List<T> firstList); 

Не действительный код Java, его вид на полпути между объявлением метода и при объявлении переменной и конкретизации ..

Для создания второго списка ...

List<String> firstList = new ArrayList<String>(); 
List<String> secondList = createSecondList(firstList); 
+0

, пожалуйста, сообщите или исправьте. –

+0

Вы уже показали ответ в начале своего сообщения ..! – cowls

+0

@cowls «ответ в начале сообщения» на самом деле является ответом на тот же вопрос http://stackoverflow.com/questions/15289585/generics-with-context-to-wild-cards – Javier

0

1>List<String> list1 = new ArrayList<String>(); // это первый тип
2>List<List<String>> list2 = new ArrayList<List<String>>(); // это второй тип, который в том числе первого типа списка

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