Java泛型详解编程语言

当把一个对象丢进集合中后,集合就会忘记这个对象的数据类型,再次取出时变成了Object,有可能出现异常。

    public class ListErr { 
        public static void main(String[] args) { 
            List strList = new ArrayList(); 
            strList.add("a"); 
            strList.add("b"); 
            strList.add(5); 
            // 企图把Interger转成String,导致异常 
            strList.forEach(str -> Symtem.out.println(((String)str).length())); 
        } 
    }

所以对集合的类型需要进行规范。

菱形语法

在Java7之前,构造器的后面也必须带泛型

    List<String> strList = new ArrayList<String>();

从Java7之后可以简化为

    List<String> strList = new ArrayList<>();

在类、接口中定义

所谓泛型,就是允许在定义类、接口和方法时使用类型形参,如下所示

    public interface List<E> { 
        void add(E x); 
        Iterator<E> interator(); 
    } 
    public interface Iterator<E> { 
        E next(); 
        boolean hasNext(); 
    }

当使用List< String>的时候,等同于如下接口

    public interface ListString extends List { 
        void add(String x); 
        Iterator<String> interator(); 
    }

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/13507.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论