Возможно ли в Java 7 создать экземпляр анонимного внутреннего класса с универсальным типом, используя объект Class
, который у меня есть?
Вот упрощенная версия универсального класса, который я пытаюсь создать:
abstract class DomainBuilder<E> {
private final Class<E> entityClass
public DomainBuilder() {
this.entityClass = (Class<E>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
...
}
Создание анонимного внутреннего класса, когда я указываю класс, который я хочу создать во время компиляции, отлично работает:
DomainBuilder builder = new DomainBuilder<MyDomainClass>() {}
Я хотел бы сделать так, чтобы я мог использовать переменную Class
, которую я определил во время выполнения, как это, но еще не понял, как это сделать:
Class clazz = MyDomainClass.class
...
DomainBuilder builder = new DomainBuilder<clazz>() {}
Я также безуспешно пытался создать методы по этим направлениям:
Class clazz = MyDomainClass.class
DomainBuilder builder = builderFor(clazz)
public static DomainBuilder<T> builderFor(Class<T> t) {
return new DomainBuilder<T>(entityManager){}
}
Возможно ли что-то подобное?