泛型学习记录,欢迎纠错o(╥﹏╥)o
文章目录
1 什么是泛型(Generic Type)
“参数化类型” 就是所操作的数据类型被指定为一个参数,然后在使用/调用时传入具体的类型。
2 泛型怎么用
2.1 泛型类
class A<T>{
T t;
public void set(T t){
this.t = t; }
public T get(){
return t; }
}
//泛型类的使用
A<String> a = new A<>();
2.2 泛型接口
interface a<T>{
void set(T t);
T get();
}
//泛型接口的实现1
class A implements a<String> {
@Override
public void set(String s) {
}
@Override
public String get() {
return null; }
}
//泛型接口的实现2
class AA<T> implements a<T> {
T t;
@Override
public void set(T t) {
this.t = t}
@Override
public T get() {
return t; }
}
2.3 泛型方法
<T> T make(T t){
//定义的<T>只在该方法有效,并且该T只有在该方法被调用才确定类型
//dosomething
return t;
}
3 什么时候使用泛型
3.1 类型检查和自动转型
class A<T>{
T t;
public void set(T t){
this.t = t; }
public T get(){
return t; }
}
A<String> a = new A<>();
a.set("aaa");
a.set(1); //报错!!! -> 这里进行了类型检查
String s = a.get(); //自动转型
3.2 类型约束
class Aa{
}
class A<T extends Object & Serializable>{
}
A<String> a = new A<>();
A<Aa> aa = new A<>(<