Java 泛型
程序员文章站
2022-03-13 10:45:11
...
-
泛型:它可以帮助我们建立类型安全的容器。本质就是”数据类型的参数化“。我们可以把“泛型”理解为数据类型的一个占位符(形式参数),即告诉编译器,在调用泛型时必须传入实际类型。
/**
* 测试泛型
* @author administrator
*
*/
public class TestGeneric {
public static void main(String[] args) {
//实参
MyCollection<String> mc = new MyCollection</*String*/>();
mc.set("zzz", 0);
String str = mc.get(0);
}
}
class MyCollection<E>{//形参
Object[] objs = new Object[5];
public void set(E e,int index) {
objs[index] = e;
}
public E get(int index) {
return (E)objs[index];
}
}
将要归类的内容放在一个指定的容器内,比如说:这里有大堆肉,有牛肉,羊肉,鱼肉,鸡肉等等,我们保存这些肉,怎么做才能方便日后使用呢?我们拿来一个容器,在容器旁边挂个标签,写道“牛肉”,然后我们往里面放的时候就只能放牛肉,这样子,我们放进去的就一定是牛肉,我们拿出来用的时候也就一定是牛肉了。
如同这里,我们自定义了MyCollection(我的容器),在TestGeneric中贴了个标签<String>表示放的是字符串,现在的版本已经可以省略掉构造里面再声明标签。所以可以省略。我们在Objs数组里面放入字符串"zzz",就不用自己强制转型告诉编辑器这是String了,因为我们给它贴了个标签了-->String,所以放进去的是String,拿出来用也是String。(如果不放String可是会报错的!)