关于泛型,刚开始学这个的时候我也不太明白泛型的作用是什么,后来直到我自己编写程序,写集合报错的时候才发现了泛型的重要性。
在编写程序,如果没有指定泛型,加入的元素是可以不为同一类对象,编译的时候不会报错,但是运行的时候就会出问题。
比如编写如下的程序:
class Test
{
public static void main(String[] args)
{
ArrayList list1 = new ArrayList();
List1.add(“泛型数组”);
List1.add(4);
List1.add(new Integer(4));
Iterator it = list1.iterator();
while(it.hasNext())
{
String s = it.next();
System.out.println(s+":"+s.length());
}
}
}
泛型中,还可以不指定明确泛型类型,等到时机要用的时候,再根据需求来定义:
class Demo
{
public void show(T t)
{
System.out.println("show:"+t);
}
public "void print(Q q)"
{
System.out.println("print:"+q);
}
public static void method(W t)
{
System.out.println("method:"+t);
}
同样的,泛型也可以进行限定:
? 通配符。也可以理解为占位符。
泛型的限定;
? extends E: 可以接收E类型或者E的子类型。上限。
? super E: 可以接收E类型或者E的父类型。下限
|
|