zoukankan      html  css  js  c++  java
  • 泛型类,普通泛型类,限制型,通配符

     /**
     * 自定义普通泛型类
     * @author Administrator
     *
     * @param <T> 泛型
     */
    //public class GenericTest<T> {
    // private T member;
    // public T getMember() {
    //  return member;
    // }
    // public void setMember(T member) {
    //  this.member = member;
    // }
    //}

    public class Person {}

    public class Student extends Person {}

    public class Teacher {}

    /**
     * 限制型泛型类
     * @author Administrator
     *
     * @param <T> 泛型
     */
    public class GenericTest<T extends Person> {
     private T member;
     public T getMember() {
      return member;
     }
     public void setMember(T member) {
      this.member = member;
     }
    }

    /**************普通泛型类的使用*****************/
    // public static void main(String[] args) {
    //  GenericTest<String> generic = new GenericTest<String>();
    //  generic.setMember("abc");//正确,"abc"是字符串与泛型类型匹配
    //  //generic.setMember(100);//出错,100是整形与泛型类型不匹配
    //  
    //  //GenericTest<int> generic2 = new GenericTest<int>();//出错,泛型类型只能是引用类型,不能是原始类型
    //  GenericTest<Integer> generic2 = new GenericTest<Integer>();//正确
    // 
    //  GenericTest<Person> generic3 = new GenericTest<Person>();//正确
    //  Person p = new Person();
    //  p.setName("张三");
    //  p.setAge(23);
    //  generic3.setMember(p);
    // }

    /**************限制型的泛型类的使用*****************/
    // public static void main(String[] args) {
    //  GenericTest<Student> g1 = new GenericTest<Student>();//正确,因为Student有继承Person
    //  GenericTest<Teacher> g2 = new GenericTest<Teacher>();//错误,因为Teacher没有继承Person
    //  GenericTest<Person> g3 = new GenericTest<Person>();//正确,可以使用父类本身
    // }

    /**************通配符在泛型类中的使用*****************/
    // public static void main(String[] args) {
    //  //?是通配符,代表符合要求的类型
    //  GenericTest<? extends Person> g1 = new GenericTest<Student>();//正确
    //  GenericTest<? extends Person> g2 = new GenericTest<Teacher>();//错误
    //  GenericTest<? extends Person> g3 = new GenericTest<Person>();//正确
    // 
    //  GenericTest<? super Student> g4 = new GenericTest<Person>();//正确
    //  GenericTest<? super Student> g5 = new GenericTest<Student>();//正确
    //  GenericTest<? super Student> g6 = new GenericTest<Teacher>();//出错
    // }

  • 相关阅读:
    mysql中给查询结果添加序号
    Mysql如何取当日的数据
    nginx 出现413 Request Entity Too Large问题的解决方法
    Mac 安装Jupyter Notebook
    Python-用xlrd模块读取excel,数字都是浮点型,日期格式是数字的解决办法
    sql-exists、not exists的用法
    sql语句replace函数的使用
    Python-日期格式化
    Python-自动用0补取长度
    Flask-实现下载功能
  • 原文地址:https://www.cnblogs.com/danmao/p/3825264.html
Copyright © 2011-2022 走看看