Я пытаюсь написать фабричный класс для возврата экземпляра класса с общим типом параметра. Я думаю, что это можно сделать, используя отражение, но я смущен относительно того, как.Создание экземпляра класса с типичным параметром типа в java
Вот пример того, что я пытаюсь сделать.
public class GenericObjectFactory {
public GenericObject<?> getGenericObject(Class clazz){
// I want to return a new instance here of the generic object with type parameter clazz. So something like this...
return new GenericObject<clazz>();
}
кто-либо идеи, как это делается?
Я знаю, что могу создать clazz с newInstance, но я хочу GenericObject. ie getGenericObject (string.getClass()) возвращает новый GenericObject < String>();
Извините, это сообщение немного путано. Надеюсь, это имеет смысл. Заранее спасибо.
Tracey
Неужели это не оставит меня с той же проблемой? Только теперь мне нужно создать экземпляр класса в конструкторе, а не на фабрике? –
Проблема в вашем коде заключается в том, что он не может быть скомпилирован, потому что он синтаксически неверен. Оба моих фрагмента составлены без предупреждений и работы, поэтому одной и той же проблемы здесь не существует. – AlexR
Я понимаю, что мой код неправильный. Я просто использовал пример, чтобы объяснить, что я пытаюсь сделать. Если бы это было правильно, мне не пришлось бы задавать вопрос ... В конструкторе, хотя даже с вашим примером я не уверен, как создать экземпляр класса с определенным типом, который передается во время выполнения. –