无法使用Java类型系统来强制类层次结构为其子类的构造函数具有统一的签名。
考虑:
public class ColorPencil extends Pencil{ private Color color; public ColorPencil(Color color) { super(); this.color=color; } }这使ColorPencil成为有效的T(它扩展了Item)。但是,此类型没有no-arg构造函数。因此,T()是无意义的。
要执行您想要的操作,您需要使用反射。您不能从编译时错误检查中受益。



