zoukankan      html  css  js  c++  java
  • JAVASE(十五) 泛型 :泛型用例、自定义泛型类、通配符

     

     个人博客网:https://wushaopei.github.io/    (你想要这里多有)

    1、泛型在集合中的使用

    1.1 在集合中使用泛型之前的例子

         

    为什么要有泛型(Generic)?

    1. 解决元素存储的安全性问题
    2. 解决获取数据元素时,需要类型强转的问题

    1.2 在集合中使用泛型例子1

            List<String> list = new ArrayList<String>();
    		list.add("aaaa");
    		List<Integer> list2 = new ArrayList<Integer>();
    		list2.add(1111);

    1.3 在集合中使用泛型例子2

            Map<String,Integer> map = new HashMap<String,Integer>();
    		map.put("aaa", 20);

    体会:使用泛型的主要优点是能够在编译时而不是在运行时检测错误。

    2、自定义泛型类,泛型接口,泛型方法

    2.1 自定义泛型类

    public class Women<T> {
        T t;
    }

    思考?如何让子类指明父类的泛型类型
    当子类继承父类时,可以直接指明父类的泛型类型,那么子类就不用再声明泛型的类型了

    public class Women extends Creature<String> {}

    当子类继承父类时,不直接指明父类的泛型类型,那么子类就必须声明泛型的类型

    public class Women<T> extends Creature<T> {}

    2.2  自定义泛型接口

    public interface Buy<T> {
        public void setT(T t);
    }

    2.3  自定义泛型方法

    public <E> E setE(E e){
    	return e;
    }

    说明:泛型方法可以使用static修饰

    3、 泛型与继承

       

    示例:

    public void testGenericAndSubClass() {
    	Person[] persons = null;
    	Man[] mans = null;
    	// 而 Person[] 是 Man[] 的父类.
    	persons = mans;
    
    	Person p = mans[0];
    
    	// 在泛型的集合上
    	List<Person> personList = null;
    	List<Man> manList = null;
    	// personList = manList;(报错)
    }
    

    4、 通配符 - ?

    4.1通配符的使用说明:

    说明:        <?>是所有泛型类型的父类
    读取数据:使用通配符泛型的集合能读取数据。
    存数据 :   只能存储null

    4.2  通配符的限制说明:

    <? extends Number>     (无穷小 , Number]

    只允许泛型为Number及Number子类的引用调用

    <? super Number>      [Number , 无穷大)

    只允许泛型为Number及Number父类的引用调用

    <? extends Comparable>

    只允许泛型为实现Comparable接口的实现类的引用调用

  • 相关阅读:
    datagridview 数据刷新 从新绑定
    SVN 出现This client is too old to work with working copy...错误
    【转】ASPX和HTML获取系统根目录的路径
    C#程序最小化到托盘图标
    Winform的html编辑控件htmleditor 有时候无法为里面HTML属性初始化
    C# HttpWebRequest保存cookies模拟登录的方法【z】【解决】
    快速生成解决方案 ctrl + shilf + b
    datagridview只允许单选
    数据库int类型 才可以自增长
    C# dataTable实用例
  • 原文地址:https://www.cnblogs.com/wushaopei/p/12259540.html
Copyright © 2011-2022 走看看