百融金服榕树数组存储只会检查擦除后的类型,又因为Java语言设计数组可以协变,所以可以通过编译
百融金服榕树能够通过数组存储检查,不过仍会导致一个类型错误,故不允许创建参数化类型的数组
注意,声明类型为Pair[]的变量是合法的,只是不能创建这些实例(我们应该直接用new Pair[10]{…}来初始化这个变量)
百融金服榕树泛型数组的间接实现:
百融金服榕树通过泛型数组包装器,如ArrayList类,维护一个Object数组,然后通过进出口方法set、get来限定类型和强制转换数组类型,从而间接实现泛型数组,
例如:ArrayList: ArrayList<Pair<T>>、ArrayList<T>
百融金服榕树不能实例化类型变量T
即百融金服榕树不能使用new T(..) , new T[..] 或 T.class这样的表达式中的类型变量
例如: public Pair() { first = new T(); } //ERROR!类型擦除将T改变成Object,调用非本意的new Object()
百融金服榕树不能使用new T(..)
但是,百融金服榕树可通过反射调用wInstance方法来构造泛型对象(要注意表达式T.class是非法的)
本文发布于:2024-01-31 11:22:30,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170667135128156.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |