2015-10-08 4 views
0

Мое требование аналогично нижеОбъявить Generic Тип для класса на основе параметра метода

public List getList(XXX xxx) { 
List<xxx> list = new ArrayList<xxx>(); 
----some logic goes here---- 
return list; 
} 

Я хочу, чтобы объявить общий тип класса на основе переданного аргумента метода. В приведенном выше методе xxx может быть String или Integer или Float.

Как достичь этого?

Заранее спасибо

+4

'общественного Список GetList (T т) { Список список = новый ArrayList (); .... ' – Natalia

+0

Спасибо за ваш ответ. похоже, я получил правильный ответ. Позвольте мне попытаться подтвердить. – Raashith

+0

У меня есть сомнения. Какая польза от упоминания перед сигнатурой метода. (т. е. public Список getList ......) Можете ли вы прояснить меня? – Raashith

ответ

0

Вы можете использовать:

public <T> List<T> getList(T param){ 
     return new ArrayList<>(); 
    } 
+1

Это не будет компилироваться, если только оно не находится в классе с общим параметром ''. –

+0

В этом ответе отсутствует параметр 'T' ... не должно быть' ArrayList (); '? –

+0

@DaDaDom Не относится к Java 7. 'T' может быть выведено в контексте возврата. http://www.javaworld.com/article/2074080/core-java/jdk-7--the-diamond-operator.html Это, однако, отсутствует объявление 'T', как в' public Список getList (T param) {' –

0

Вы также можете использовать это:

public List<Object> getList(Object object) { 
    List<Object> list = new ArrayList<Object>(); 
    ----some logic goes here---- 
    return list; 
} 
Смежные вопросы