泛型类:直接在类/接口上定义的泛型
使用泛型:
保证前后类型相同
List<String> list=new ArrayList<>()从Java7开始推出泛型的菱形语法
泛型不存在继承的关系List<Object> list=new ArrayList<String>();//错的
从此以后,使用集合都得使用泛型来约束该集合中元素的类型
通过反编译发现:泛型其实只是语法糖,底层依然没有泛型,而且依然使用强转
---------------------------------------------------------------------------------------------
泛型方法:在方法上声明泛型
情况1:泛型类中的泛型只能适用于非静态方法,如果需要给静态方法设置泛型,此时使用泛型方法
情况2:泛型类中的泛型应该适用于整个类中多个方法,有时候只对一个方法设置泛型即可
一般的,把自定义的泛型作为方法的返回类型才有意义,而且此时的泛型必须是有参数设置进来的‘
public static <T> T doWork(T val){
return val;
}