java1.5开始引入泛型,使用起来很方便!我在这里简单介绍一下
1。容器
ArrayList接口在1.5开始变成ArrayList<E>因此使用时可以使用:
java 代码
- ArrayList<String> a;
-
a=new ArrayList<String>();
-
a.add("泛型");
-
String s=a.get(0);
使用泛型可以在容器中放入指定类型的对象。并获取减少类型转换。
1.5之后的容器引入了泛型
2。使用
在类名称后声明:
java 代码
- public static class abc<E>{
然后就可以在类中使用
E e;
E是个什么????
就好像一个未定的类型,所以暂时可以看着一个Object
由类的使用者定义类型!
看下面代码:
- package cn.openz.mbook.ModuleCreate;
- import java.util.ArrayList;
-
-
-
-
-
-
-
- public class ObjectOut {
-
-
-
public ObjectOut() {
- }
-
public static void main(String[] arg){
-
ArrayList<String> a=new ArrayList<String>();
-
a.add("asdfsadf");
-
System.out.println(a.get(0));
-
abc<String> a1=new abc<String>("asfdasdf");
- System.out.println(a1.getE());
- }
-
public static class abc<E>{
-
public E e;
-
public abc(E o){
-
this.e=o;
- }
-
public String toString(){
-
return e.toString();
- }
-
public E getE(){
-
return e;
- }
- }
- }
3。使用让泛型更具体!
java 代码
- public static class abc<E extends CharSequence>{
-
public E e;
-
public abc(E o){
-
this.e=o;
- }
-
public String toString(){
-
return e.toString();
- }
-
public E getE(){
-
return e;
- }
- }
上面的e可以使CharSequence及其子类。
在class abc中e可以调用CharSequence的方法!
还可是更具体的类
请见sun的网站,一般我们仅仅使用上面的内容!
<E extents CharSequence>
这时E可以是继承CharSequence的类!
如把上面的内部类变为:
java 代码