泛型接口
-
如果实现类实现泛型接口,接口未传入实际泛型时,实现类声明的时候也需要将泛型声明到类中
interface IB<T> { T test(T t); } /** * 未传入泛型实参时,与泛型类的定义相同,在声明类的时候,需要将泛型的声明一起加到类中 * @param <T> */ class B<T> implements IB<T> { @Override public T test(T t) { return t; } }
-
如果实现接口时,接口指定了具体的数据类型,这个类实现接口中所有的方法位置都要将泛型替换至具体的数据类新
/** * 如果实现接口时,接口指定了具体的数据类型, * 这个类实现接口中所有的方法位置都要将泛型替换至具体的数据类新 */ class B1 implements IB<Integer> { @Override public Integer test(Integer t) { return t; } }
-
测试类
- B 类实例化需要给定泛型
- B1 类实例化不需要指定泛型
public static void main(String[] args) { B<Object> b1 = new B<Object>(); B<String> b2 = new B<String>(); B1 b3 = new B1(); }