黑马程序员---高新技术之泛型

时间:2023-02-18 12:02:46
---------------------- <a href="http://www.itheima.com"target="blank">Jsp.java+Android开发</a>、<a href="http://www.itheima.com"target="blank">Jsp.java+Android开发 </a>、期待与您交流! ----------------------

(1)泛型:

        泛型在集合中经常用到,泛型的本质化是参数化类型;也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口和泛型方法。

        在1.5之前,是没有泛型的;参数可以任意化,那么后面就要做显示的强制类型转换,并且很容易出现转换错误,在编译期可能发现不了,那么这就形成了安全隐患;

        但在引入泛型后就不一样了,它在编译的时候会自动检查类型安全,并且所有强制转换都是隐式的,不但方便,还提高了代码的复用性;

泛型在使用中应该注意的细节:

1,泛型的类型参数只能是类类型,不能是简单类型,类型参数可以有多个;

2,同一种泛型可以对应多个版本,因为参数类型不确定;

3,泛型的参数还可以是通配符类型,例如Class<?> 

classType = Class.forName(Java.lang.String); 常用的泛型实例如下:

public class List<V> {

public List(int cs) { ... }

public int size() { ... }

public void add(V value) { ... }

public void remove(V value) { ... }

public V get(int index) { ... }

}

4,"?"通配符的扩展:

             1、上边界: Vector< ?extends Number >:允许Number类以及其子类的传入

             2、下边界: Vector< ?super  Integer >:允许Integer类以及其父类的传入

5,自定义泛型

       定义一个交换数值的函数,交换数组中的两个元素,数组类型不定

            private  static  < T> void  swap(T[ ] a, int  i , int  j )

                {

                            T   temp = a[ i ];

                             a[ i ] = a[ j ];

                            a[ j ] = T temp;

                  }

}


---------------------- <a href="http://www.itheima.com"target="blank">Jsp.java+Android开发</a>、<a href="http://www.itheima.com"target="blank">Jsp.java+Android开发培训</a>、期待与您交流! ----------------------