美文网首页
泛型 - 使用限制

泛型 - 使用限制

作者: 平头哥2015 | 来源:发表于2018-11-30 18:39 被阅读0次

    不能实例化类型参数

    原因:编译器不知道创建那种类型的对象。

    public class Generic<T> {
        
        private T obj;
        
        public Generic() {
            obj = new T(); // illegal
        }
        
    }
    

    对静态成员的限制

    静态成员不能使用泛型类的类型参数。

    public class Generic<T> {
        
        private static T obj; // illegal
        
        public static T getObj() { // illegal
            return obj;
        }
        
    }
    

    注意:可以声明静态的泛型方法,这些方法可以定义它们自己的类型参数。


    对泛型数组的限制

    • 不能实例化元素类型为类型参数的数组。
    public class Generic<T extends Number> {
        
        private T[] nums;
        
        public Generic() {
            nums = new T[10]; // illegal
        }
        
    }
    
    • 不能创建特定类型的泛型引用数组。
    Generic<Integer>[] objs = new Generic<Integer>[10]; // illegal
    Generic<?>[] objs = new Generic<?>[10]; // OK
    

    对泛型异常的限制

    泛型类不能扩展Throwable,这意味着不能创建泛型异常类。

    相关文章

      网友评论

          本文标题:泛型 - 使用限制

          本文链接:https://www.haomeiwen.com/subject/rtfkcqtx.html