一、类上自定义泛型
1、泛型类的定义格式:
class 类名<声明自定义泛型>{
}
2、泛型类要注意的事项:
1)在类上自定义泛型的具体数据类型,是在使用该类创建对象的时候确定的。
2)如果一个类在类上已经声明了自定义泛型,但是在使用该类创建对象的时候没有指定泛型的具体数据类型时,那么默认为Object类型。
3)在类上自定义泛型时,不能作用于静态的方法。如果静态的方法需要使用自定义泛型,那么需要在方法上自己声明使用。
二、接口上自定义泛型
1、泛型接口的定义格式:
interface 接口名<声明自定义泛型>{
}
2、泛型接口要注意的事项:
1)接口上自定义泛型的具体数据类型是在实现一个接口的时候指定的。
interface Dao<T>{
public void add(T t);
}
public class Demo6 implements Dao<String> {
public void add(String t) {
}
}
2)如果在接口上自定义了泛型,但是在实现接口的时候没有指定具体的数据类型,那么默认为Object类型。
3、补充事项:
1)需求: 目前实现一个接口的时候,还不明确目前要操作的数据类型,要等待创建接口实现类对象的时候才能指定泛型的具体数据类型。
2)要延长接口自定义泛型的具体数据类型时,格式如下:
interface Dao2<T>{
public void add(T t);
}
public class Demo7<T> implements Dao2<T> {
public void add(T t) {
}
public static void main(String[] args) {
Demo7<String> d = new Demo7<String>();
}
}