泛型

<small>
泛型:可变参数化类型,暂时性的不指定类型,,当在指定场合下,则可以指定引用对应的类型
在类名后直接跟上<参数化类型E、T>
可变参数化类型,暂时性的不指定类型,

  •  当在指定的场合下,则可以指定引用对应的类型。      
    
  •  在类名后直接跟上<参数化类型E、T>
    
  •  在不指定泛型时,参数可为Object类型数据。
    
  •  一旦指定参数类型,则参数只能是对应类型的数据。
    
public class Point<E> {
    private E x;
    private E y;
    public Point(E x, E y) {
        this.x = x;
        this.y = y;
    }
    public Point() {
    }
    public E getX() {
        return x;
    }
    public void setX(E x) {
        this.x = x;
    }
    public E getY() {
        return y;
    }
    public void setY(E y) {
        this.y = y;
    }
    
    public static void main(String[] args) {
        /*
         * 泛型:
         *  参数化类型,暂时不指定类型时,
         *  则类型可为Object
         * 
         *  一旦泛型指定了参数类型,
         *  则只能添加该类型的参数数据。
         */
        Point point = new Point();
        point.setX(1);
        point.setY("二");
Point<People> point1 = new Point<People>();
        point1.setX(new People());
        point1.setY(new People());
    }
}
  • 泛型在迭代器中的使用:
  • 因为迭代器是从集合中获取。
  •  若集合不指定泛型,迭代器也不会指定泛型,
    
  •      迭代器非得指定泛型,则必定会导致集合
    
  •      元素类型转换异常。
    
  •  若集合指定泛型,则迭代器也要相应的指定泛型。
    
  • 作用:1、自动检测集合中的元素类型。
  •   2、完成元素类型的强制类型转换过程。
    
    public static void main(String[] args) {
        //集合不指定泛型
        Collection col = new ArrayList();
        col.add("java");//String
        col.add(1);//Integer
        col.add(false);//Boolean
        col.add(new People());//People
/*Iterator<People> ite = col.iterator();
        while(ite.hasNext()){
            People peo = ite.next();//类型转换异常。
            System.out.println(peo);
        }*/
        ```
//集合指定泛型:String类型
    Collection<String> col1 = 
new ArrayList<String>();

// col1.add(1);//已经无法添加非String类型的数据了。
col1.add("java");
col1.add("c#");
col1.add("IOS");
自动检测集合中的元素类型。
Iterator<String> ite = col1.iterator();
while(ite.hasNext()){
/若迭代器不指定泛型,则取出的元素是Object类型
若迭代器指定泛型,则可以直接取出对应泛型的类型数据。
/Object obj = ite.next();/
//完成元素类型的强制类型转换过程。
String str = ite.next();
}
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 开发人员在使用泛型的时候,很容易根据自己的直觉而犯一些错误。比如一个方法如果接收List作为形式参数,那么如果尝试...
    时待吾阅读 1,122评论 0 3
  • 一、泛型简介1.引入泛型的目的 了解引入泛型的动机,就先从语法糖开始了解。 语法糖 语法糖(Syntactic S...
    Android进阶与总结阅读 1,073评论 0 9
  • 我们知道,使用变量之前要定义,定义一个变量时必须要指明它的数据类型,什么样的数据类型赋给什么样的值。 假如我们现在...
    e347afbb188e阅读 309评论 0 0
  • 小学一年级的的时候,有一天晚上,我兴致勃勃地拿着语文课本,去找爸爸给我提问一下课后的几新学的汉字。我其实已经能认识...
    时间的玫瑰_阅读 444评论 4 4
  • 听说越是孤独的人,她的手就越凉。 ——题记 年华匆匆而过...
    红尘红尘阅读 343评论 0 2

友情链接更多精彩内容