//没有使用泛型的List集合
public void noGenerics(){
List list = new ArrayList<>();
list.add(new Date());
Date myDate = (Date) list.get(0);
System.out.println(myDate);
}
//使用了泛型的List集合
public void haveGenerics(){
List<Date> list = new ArrayList<Date>();
list.add(new Date());
Date myDate = list.get(0);
System.out.println(myDate);
}从上述代码可以看出,未使用泛型的集合,当对象存入集合之后,取出对象时,并不知道其对象是何种类型,所以加了一个强转的动作。而使用泛型的方便之处在于其出的对象就是原本定义的泛型类型,不需要进行强转,减少了出错的可能性。import java.util.Date;
public class GenericsTest {
public static void main(String[] args) {
printObject(new Date());
printObject("java");
}
// 自定义泛型方法,泛型要先声明,后使用。
public static <T> void printObject(T t) {
System.out.println(t.toString());
}
// 自定义泛型方法,多个泛型参数的使用
public static <T, E, K> void printObject(T t, E e, K k) {
//.....
}
}下面是如何使用泛型,将任意类型的数组进行内容颠倒:
public class Test {
public static void main(String[] args) {
Integer arr[] = { 2, 5, 7, 4, 8 };
reverse(arr);
for (int i : arr) {
System.out.println(i);
}
}
//使用泛型颠倒任意数组的内容。
public static <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--;
}
}
}
5561



被折叠的 条评论
为什么被折叠?



