создать экземпляр класса из объекта класса - PullRequest
17 голосов
/ 14 июня 2010

В Java, я могу использовать объект класса для динамического создания экземпляров классов этого типа?

т.е. мне нужна какая-то функция, подобная этой.

Object foo(Class type) {
    // return new object of type 'type'
}

Ответы [ 4 ]

27 голосов
/ 14 июня 2010

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

Object foo(Class type)
throws InstantiationException, IllegalAccessException {
    return type.newInstance();
}

... но это предполагает наличие конструктора с нулевым аргументом.Более надежный маршрут - через Class.getConstructor или Class.getConstructors, который поможет вам использовать Reflection в пакете java.lang.reflect.

2 голосов
/ 14 июня 2010

Использование:

type.newInstance()

Для создания экземпляра с использованием пустого конструктора или с помощью метода type.getConstructor (..), чтобы получить соответствующий конструктор и затем вызвать его.

1 голос
/ 14 июня 2010

Да, это называется Отражение.для этого вы можете использовать метод Class newInstance().

0 голосов
/ 14 июня 2010

использовать метод newInstance ().

...