Если у меня есть абстрактный класс:
public abstract class Item
{
private Integer value;
public Item()
{
value=new Integer(0);
}
public Item(Integer value)
{
this.value=new Integer();
}
}
И некоторые классы, происходящие из этого элемента:
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
}
}
Я знаю, что возможно иметь тип, у которого нет конструктора, но этот случай невозможно, потому что у карандаша есть конструктор без параметров, а Item - абстрактный. Но я получаю эту ошибку от eclipse: не может управлять типом T Я не понимаю, почему и как этого избежать?