/**
* 泛型的好处: 1:把执行时的异常提前到了编译时; 2:避免了所谓的强制转换 泛型的正确使用:等号两边的类型必须一致,或者只有一边使用泛型;
* List<String> list = new ArrayList(); List list = new ArrayList<String>();
* List<String> list = new ArrayList<String>();
*
* 泛型使用的方法:
* 1、方法上面使用泛型:
* 修饰符 <声明自定义泛型> 返回值类型 函数名(形参列表...){}
* 2、泛型类
* class 类名<声明自定义泛型>{}
* 3、接口上使用泛型
* interface 接口名 <T>{}
* 例: public interface dao<T>{}
* public class demo<T> implements dao<T>{}
*
*/
* 泛型的好处: 1:把执行时的异常提前到了编译时; 2:避免了所谓的强制转换 泛型的正确使用:等号两边的类型必须一致,或者只有一边使用泛型;
* List<String> list = new ArrayList(); List list = new ArrayList<String>();
* List<String> list = new ArrayList<String>();
*
* 泛型使用的方法:
* 1、方法上面使用泛型:
* 修饰符 <声明自定义泛型> 返回值类型 函数名(形参列表...){}
* 2、泛型类
* class 类名<声明自定义泛型>{}
* 3、接口上使用泛型
* interface 接口名 <T>{}
* 例: public interface dao<T>{}
* public class demo<T> implements dao<T>{}
*
*/