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 泛型的作用
- 提高代码的复用率
- 类型在使用时绑定,无序强制类型转换
总结
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!