什么是非泛型类具有通用构造函数的好处?Java规范允许以下内容:
class NonGeneric {
<T> NonGeneric() { }
...
NonGeneric ref = new <String> NonGeneric();
}
你能举出一个现实的例子来说明它如何增强类的类型安全性吗?相比于一开始就使用泛型,它有什么优势呢?
我理解Java设计者希望构造函数与方法更加一致。鉴于构造函数可能具有副作用,泛型构造函数可以使用泛型来改变一些不保留引用的参数,例如:
<T> NonGeneric(T obj, List<T> list) {
list.add(obj);
// Don't hold a reference to list
}