JAVA高级复习-自定义泛型类、泛型接口的注意点

1. 静态方法中不能使用泛型

2. 泛型数组的正确写法

public class Student<T> {
    private T studentT;

    //静态方法中不能使用泛型
//    public static void show(T studentT) {
//        System.out.println(studentT);
//    }

    public void read() {
        //泛型数组的错误写法,编译不通过,报错(Type parameter 'T' cannot be instantiated directly)
//        T[] arr = new T[10];

        //泛型数组的正确写法,编译通过
        T[] objects = (T[]) new Object[10];
    }
}

3. 泛型不同的引用,不能相互赋值,否则报错(Incompatible types)

4. 异常类不能是泛型的,编译报错(Generic class may not extend 'java.lang.Throwable')

/**
 * 自定义泛型类、泛型接口的注意点
 */
public class GenericTest4 {

    @Test
    public void test01() {
        List<Integer> list1 = new ArrayList<>();
        List<String> list2 = new ArrayList<>();
        //泛型不同的引用,不能相互赋值,否则报错(Incompatible types)
//        list1 = list2;

    }

}

/**
 * 异常类不能是泛型的,编译报错(Generic class may not extend 'java.lang.Throwable')
 */
//class MyException<T> extends RuntimeException {
//
//}
posted @ 2020-09-11 20:34  温森  阅读(304)  评论(0编辑  收藏  举报