Почему нельзя создать экземпляр?
public class Entity<E> {
public void Action() {
// Вот тут возникает ошибка
E entity = new E();
}
}
Источник: Stack Overflow на русском
public class Entity<E> {
public void Action() {
// Вот тут возникает ошибка
E entity = new E();
}
}
Потому что заранее неизвестно с каким классом (Е) будет работать твой класс. Соответственно неизвестно есть ли у класса Е public конструкторы.
@Vadim прав, но если вам очень хочется тогда можно сделать так:
abstract class Entity<E>
{
public void Action ()
{
final E entity = createEntity ();
}
protected abstract E createEntity ();
}