速记-泛型擦除

泛型擦除是 Java 泛型中一种类型擦除机制,它是指在编译期间对泛型类型信息进行擦除,将泛型类型信息转换成普通的类型,从而避免了 Java 泛型运行时的性能消耗和类型转换的问题。具体而言,泛型擦除会将泛型类型参数在编译时替换成 Object 类型,并在需要类型转换的地方插入强制类型转换。

例如,对于一个泛型类 List<T>,在编译时泛型类型参数 T 会被擦除,因此 List<T> 会被转换成 List<Object> 类型,并在需要类型转换的地方插入强制类型转换。

泛型擦除的优点是可以使泛型代码与非泛型代码相互操作,同时还可以减少内存使用和提高性能。但它也有一些缺点,比如在运行时无法获得泛型类型信息,这可能会导致一些运行时异常。另外,泛型擦除也会限制一些使用泛型的高级特性,如泛型数组和通配符类型等。
ava 泛型可以有以下几种参数:

类型参数(Type Parameters):它用来指定泛型类型的占位符,可以是任意标识符,通常用大写字母来表示。例如,List<T> 中的 T 就是一个类型参数。

通配符类型参数(Wildcard Type Parameters):它使用 ? 来表示一种不确定的类型参数,可以用来限制方法参数的类型范围。例如,List<? extends Number> 中的 ? extends Number 就是一个通配符类型参数,表示 List 中的元素必须是 Number 类型或其子类型。

有界类型参数(Bounded Type Parameters):它可以限制泛型类型的取值范围,可以指定上界或下界。例如,<T extends Number> 中的 extends Number 就是一个有界类型参数,表示 T 必须是 Number 类型或其子类型。

泛型数组参数(Generic Array Parameters):它用来指定泛型数组的类型,可以使用类型参数或通配符类型参数。例如,T[] 或 ?[] 都是泛型数组参数。

以上是 Java 泛型中常用的几种参数类型,开发者可以根据自己的需要来选择合适的参数类型来定义泛型类型或方法。
全部评论

相关推荐

01-14 12:08
门头沟学院 Java
神哥了不得:(非引流)1.既然发出来了简历,就稍微提一点点小建议,确实简历很不错了,练手项目可以换一些质量高的,工作内容,可以加上一些量化指标,比如第一条系统响应速度由多少变成多少,减少了百分之多少,第4条就很不错。2.广投,年前实习招募比较少了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务