泛型概述
有无泛型程序对比
无泛型
必须使用向下转型
/** * 当前程序无泛型 * 缺点:不好看,代码比较多,每一次从集合中取出的元素要想使用方法,必须向下转型 * 因为Object下的方法很少。 */ public class GenericTest01 { public static void main(String[] args) { //创建集合对象 ArrayList c = new ArrayList(); User u1 = new User("张三"); User u2 = new User("李四"); User u3 = new User("王五"); //添加到集合中 c.add(u1); c.add(u2); c.add(u3); //遍历集合 Iterator it = c.iterator(); while (it.hasNext()){ Object obj = it.next(); if(obj instanceof User) { //支付 //这里没有使用泛型机制,要想使用泛型方法只能使用向下转型 User user = (User) obj; user.pay(); } } } }
有泛型
/** * 有泛型 */ public class GenericTest02 { public static void main(String[] args) { //程序编写是否可以使用泛型,看哪里? //看帮助文档中有没有<>符号。 //有都可以使用泛型。 Collection<User> c = new ArrayList<User>(); User u1 = new User("张三"); User u2 = new User("李四"); User u3 = new User("王五"); //添加到集合中 c.add(u1); c.add(u2); c.add(u3); //遍历集合 Iterator<User> it = c.iterator(); while (it.hasNext()){ User user = it.next(); //支付 user.pay(); } } }
了解内容
泛型的使用
在类上定义泛型
在方法上定义泛型
静态方法不能使用是因为静态方法是类名直接调用,没有实例化,就没有指定对象。
普通方法
静态方法
如果要使用的话