Junit测试的方法没有参数 没有返回值 必须的

泛型:使用泛型可以避免类型的强制转换  1.5版本出现的安全机制 将运行时期出现的的问题转移到了编译时期

什么时候使用泛型类呢:当类名操作的引用数据类型不确定的时候 就可以使用泛型

泛型可以定义到类上 class Tool <Q> 更可以定义到方法上 public <Q>void show 方法泛型 通常情况下静态居多

泛型限定:

?代表通配类型

泛型编译后生产的class文件 不再包含泛型

泛形的基本术语,以ArrayList<E>为例:<>念着typeof

ArrayList<E>中的E称为类型参数变量

ArrayList<Integer>中的Integer称为实际类型参数

整个称为ArrayList<E>泛型类型

整个ArrayList<Integer>称为参数化的类型ParameterizedType

使用泛型的时候 如果都使用到泛型 两边必一致  如果只用一边 是可以 的

自定义泛型 避免 强转

public <T> T a (T t ) {

} 有几个参数就要用到几个

可以把泛型定义到类上 作用到整个类上 对静态成员是无效的

public class Demo5<T, E, K> {

 

    // 自定义类上的泛形

 

    public void testa() {

       // Demo6 d = new Demo6<String, String, String>();

       a("aaa");

    }

 

    public <T> T a(T t) {

 

       return null;

    }

 

    public void b(T t, E e, K k) {

 

    }

 

    public static <T> void c(T t) {

 

    }

 

}

//用泛型定义一个方法 是数组逆置

package cn.itcast.collections;

 

import org.junit.Test;

 

public class Demo6 {

   

    Integer arr[] = {1,2,3,4,5};

   

    @Test

    public void test(){

       reverse(arr);

       for(int i : arr) {

           System.out.print(i + " ");

       }

    }

   

    public <T> void swap (T arr[] , int pos1 , int pos2) {

       T temp = arr[pos1];

       arr[pos1] = arr[pos2];

       arr[pos2] = temp ;

    }

   

    public <T> void reverse( T arr[]  ) {

       int start = 0 ;

       int end = arr.length - 1 ;

      

       while(true){

           if(start>=end){

              break;

           }

          

           T temp = arr[start];

           arr[start] = arr[end];

           arr[end] = temp;

          

           start++;

           end--;

       }

      

    }

   

}

posted on 2011-04-24 11:24  情定诺坎普  阅读(257)  评论(0编辑  收藏  举报