2011-02-04 3 views
0

Например, можно сделать что-то вроде этого:Есть ли способ создать экземпляр generic с помощью переменной Class?

public void doSomething(Class clazz) { 
    List<clazz> list = new ArrayList<clazz>(); 
    list.add(clazz.newInstance)); 
} 

Я знаю, что это не работает, но это показывает, что я пытаюсь получить в. Есть ли способ параметризовать создание родового класса?

Спасибо, Peter

+0

Почему? Что бы вы сделали со списком? – SLaks

+0

Как вы решите, что делать с вещами внутри, кроме как с 'instanceof'? – BoltClock

+0

Список - это всего лишь пример того типа механики, который я пытаюсь использовать. Реальное приложение отличается. – Risser

ответ

6

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

public <T> void doSomething(Class<T> clazz) { 
    List<T> list = new ArrayList<T>(); 
    list.add(clazz.newInstance()); 
} 
+1

'public void doSomething (класс clazz) {' вероятно, был бы более полезен. Хотя отражение довольно злобное. –

+0

@Tom, было бы более полезно, если бы метод сделал что-то со списком (может быть, тоже хорошая идея);) –

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