泛型小结

来源:互联网 发布:seo点击软件 编辑:程序博客网 时间:2024/05/17 06:12

1.泛型方法

当需要用的不明确的数据类型时,可以用泛型
public 泛型返回值类型 函数名( 泛型 变量名)
具体方法也可以用泛型申请对象,具体泛型对应什么,在使用时定义

2.泛型类

1.在类中具体对应的方法前面定义泛型,在方法中就能用泛型
public < T >void reverse(T[] arr)
2.在类之前直接定义泛型,下面就能直接用了(class A< T >)
(注意:静态方法不能使用泛型)
定义泛型:
1.在创建对象时定义泛型(例:A< String > a = new A< String >();)
2.在创建对象时也可以不定义泛型类型,这时默认为Object

3.泛型接口


interface Inter< T > {
void print(T t);
}
类似类使用泛型,在接口名后面定义泛型,在接口方法中可以使用


在实现泛型接口时有两种情况
1.知道泛型类型


class MyInter2 implements Inter< String > {
void print(String t){};
}
知道泛型类型时直接把接口中的泛型改写就行,但下面的实现方法中不能再使用泛型,必须使用具体的已定义类型


2.实现时仍然不明确实现类型


class MyInter2< T > implements Inter< T > {
void print(T t){};
}
实现时在本身的方法中也要定义一次泛型,则下面实现接口类时也可以使用泛型


(注意:定义泛型时,在方法中定义泛型,在方法名前面,在类或者接口中定义时在类名或接口名后面)

4.泛型通配符

定义一个方法在接收对象时使用
?extends E: 接收E类型或者E的子类型。
? super E: 接收E类型或者E的父类型。