泛型使用
Posted lovebolin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了泛型使用相关的知识,希望对你有一定的参考价值。
- 不要在新代码中使用原生态类型
原生态类型就是简单的“<>”,没有任何参数类型限定,和没有使用泛型一样,之所以存在无非是为了保持前向兼容性,因为没有起到泛型应有的作用,所有不建议使用。
- 不要忽视非受检警告,并接受它
每一条受检警告都可能抛出类型转换异常,只有在明确知道不会有转换异常的时候,才可以用@SuppressWarnings 注解来消除警告,而且应该尽可能缩小注解作用范围,以免掩盖了重要的警告。
- 列表优先于数组
列表和泛型的区别有两点,其一是数组是协变得,泛型是不可变的,这就意味着,数组在运行时才会发现错误,泛型在编译时就可以判断错误;第二点是数组是具体化的,因此数组在运行时才会检查他们的元素类型约束,泛型是通过擦除来实现的,只在编译时强化类型信息,在运行时丢弃或者说擦除类型信息。因此,泛型和数组也不能很好的混用,创建泛型数组也是非法的,作为通过数组描述的可变参数和泛型也不应该同时使用。
- 优先考虑泛型
- 优先考虑使用泛型方法
- 利用有限制通配符来提升API灵活性
- 优先考虑类型安全的异构容器
以上是关于泛型使用的主要内容,如果未能解决你的问题,请参考以下文章
Java泛型的其他应用——泛型接口泛型方法泛型数组以及泛型的嵌套设置
Java泛型简介定义和使用含有泛型的类定义和使用含有泛型的方法定义和使用含有泛型的接口泛型通配符?受限泛型
Kotlin泛型总结 ★ ( 泛型类 | 泛型参数 | 泛型函数 | 多泛型参数 | 泛型类型约束 | 可变参数结合泛型 | out 协变 | in 逆变 | reified 检查泛型参数类型 )