深入了解Java核心类库--泛型类
更新时间:2021年07月29日 14:27:56 作者:入错行的北北
这篇文章主要为大家详细介绍了java泛型类定义与使用的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
1.1 泛型的使用
泛型:参数化模型(不确定,后续使用时指定类型)
1.1.1 泛型类
1.1.2 泛型接口
- 实现接口时,可以选择或不选择指定泛型类型
public interface IntercaceName<T>{ T getData(); }
①指定类型
public class Interface1 implements IntercaceName<String> { private String text; @Override public String getData() { return text; } }
②不指定类型
public class Interface1<T> implements IntercaceName<T> { private T data; @Override public T getData() { return data; } }
1.1.3 泛型方法
private static T 方法名(T a, T b) { }
方法仅在方法内部有效
1.1.4 tips
- 编译之后程序会采取去泛型化措施(泛型只在编译阶段有效)
- 运行时对传入的对象进行相应类型的生成,即对象进入和离开方法的边界处添加类型检查和类型转换的方法(泛型不进入运行阶段)
1.2 泛型限制类型
- 在使用泛型时, 可以指定泛型的限定区域
- 必须是某某类的子类或 某某接口的实现类,格式:
<T extends 类或接口1 & 接口2>
1.3 通配符?
1.3.1 上界限定
- 指了泛型类型的上届(限定了父类)
< ? extends Parent>
1.3.2 下届限定
- 指定了泛型类型的下届(限定了子类)
<? super Child>
1.3.3 无限制
- 指定了没有限制的泛型类型
- 区别于Object
1.4 泛型的作用
- 提高代码的复用率
- 类型在使用时绑定,无序强制类型转换
总结
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
相关文章
java中volatile和synchronized的区别与联系
这篇文章主要介绍了java中volatile和synchronized的区别与联系的相关资料,希望通过本文能帮助到大家,让大家理解这部分内容,需要的朋友可以参考下2017-10-10SpringBoot 接口开发教程(httpclient客户端)
这篇文章主要介绍了SpringBoot 接口开发教程(httpclient客户端),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03RocketMq同组消费者如何自动设置InstanceName
这篇文章主要介绍了RocketMq同组消费者如何自动设置InstanceName问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-06-06java高效打印一个二维数组的实例(不用递归,不用两个for循环)
下面小编就为大家带来一篇java高效打印一个二维数组的实例(不用递归,不用两个for循环)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-03-03
最新评论