Вызов конструктора универсального типа

Если у меня есть абстрактный класс вроде этого:

public abstract class Item
{
    private Integer value;
    public Item()
    {
        value=new Integer(0);
    }
    public Item(Integer value)
    {
        this.value=new Integer();
    }
}

И некоторые классы, производные от Item, вроде этого:

public class Pencil extends Item
{
    public Pencil()
    {
        super();
    }
    public Pencil(Integer value)
    {
        super(value);
    }
}

Я не понял, почему я не могу вызвать конструктор с использованием универсального:

public class Box <T extends Item>
{
    T item;
    public Box()
    {
        item=new T(); // here I get the error
    }
}

Я знаю, что можно иметь тип, не имеющий конструктора, но этот случай невозможен, потому что Pencil имеет конструктор без параметров, а Item является абстрактным. Но я получаю эту ошибку от eclipse: не может создать экземпляр типа T
Я не понимаю, почему и как этого избежать?

15
задан Ramy Al Zuhouri 20 February 2012 в 18:06
поделиться