package example6;
import java.util.Arrays;
/*泛型在方法上的使用
* 用法環境:方法邏輯相同,只是數據類型不同,這個時候使用泛型方法
* 使用泛型方法,需要定義一個類型,使用大寫字母 T,這個T表示任意的類型
* 寫下返回值之前,void之前
*/
public class fanxing_way {
// 定義一個數組,交換數組中任意兩個位置的元素值
public static void main(String[] args) {
/*
* int arr[] = new int[] { 1, 20, 30, 40, 50 };
* System.out.println(Arrays.toString(arr)); swap(arr, 1, 3);
* System.out.println(Arrays.toString(arr));
*/
/*
* String arr1[] = { "aa", "bb", "cc", "dd", "ff" };
* System.out.println(Arrays.toString(arr1));
*swap1(arr1, 1, 3);
* System.out.println(Arrays.toString(arr1)); }
*/
Integer arr[] = new Integer[] { 1, 20, 30, 40, 50 };
System.out.println(Arrays.toString(arr));
swap(arr, 1, 3);
System.out.println(Arrays.toString(arr));
String arr1[] = { "aa", "bb", "cc", "dd", "ff" };
System.out.println(Arrays.toString(arr1));
swap(arr1, 1, 3);
System.out.println(Arrays.toString(arr1));
}
/*
private static void swap1(String[] arr1, int i, int j) {
String temp = arr1[i];
arr1[i] = arr1[j];
arr1[j] = temp;
}
*/
/* private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i]= arr[j];
arr[j] = temp;
}
*/
private static <T> void swap(T[] arr, int i, int j) {
T temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
package example6;
/*泛型在類上的使用
* 在一個類上定義一個類型,這個類可以直接在類里面使用(了解)
*/
public class testfanxing<T> {
T aa;
// 在類里面直接使用T的類型
public void test1(T bb) {
}
// 寫一個靜態方法,再類上面定義的泛型,不能再靜態方法里使用
/*
public static void test2(T cc) {
}
*/
以上方法為錯誤方法。
public static <A> void test2(A cc) {
}
}
