zoukankan      html  css  js  c++  java
  • Java18-泛型的基础知识

    泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。
    可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。

    
    泛型接口:
    public interface Collection<E> extends Iterable<E>{..}
    泛型类:
    public class Generic<T> { private T key; //key这个成员变量的类型为T,T的类型由外部指定 }
    泛型方法:
    public void play( List<String> animal){...} public void test(List<?> list){...} public void play( List<? extends Animal> animal){...} public Generic(T key) { //泛型构造方法形参key的类型也为T,T的类型由外部指定 this.key = key;} 注意事项: 1.<> 尖括号里边 的参数类型是引用数据类型,不能是基本数据类型 2.类型参数用尖括号加任意字母表示 : <T>,字母一般为单个大写字母,并有一定含义, 例如 T(type),E(element),K(key),V(value) 等等 3.泛型通配符 ?

    ----------------------------------------------------------泛型实践--------------------------------------------------------

    Student:

    package factory.Student;
    
    public class Student {
    public Student(){
            
        }
        //**********字段*************//
        public String name;
        protected int age;
        char sex;
        private String phoneNum;
        
        @Override
        public String toString() {
            return "Student [name=" + name + ", age=" + age + ", sex=" + sex
                    + ", phoneNum=" + phoneNum + "]";
        }
        
    
    
    }

    test_0809
    :
    public class test_0809 {
        public String name = "123";
    }

    泛型:

    package doudou.fanxing;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import doudou.test_0809;
    import factory.Student.Student;
    
    public class test_fanxing01 {
        private static final Object String = null;
    
        public static void main(String[] args) {
            test_fanxing01();
        }
    
        public static void test_fanxing01() {
            List<? super Object> list = new ArrayList<>();
            list.add(new String("123456789"));
            list.add(new Integer(111));
            list.add(new Student()); 
            list.add(new test_0809());
            
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
     
    }

    代码运行结果:

  • 相关阅读:
    lumen 错误&日志
    Composer设置忽略版本匹配的方法
    Laravel框架数据库CURD操作、连贯操作使用方法
    laravel5-目录结构分析
    Lumen 设置 timezone 时区
    phpstorm laravel单元测试 配置
    使用laravel的Eloquent模型获取数据库的指定列
    phpstorm 配置自带webserver ,配置根目录
    使用 OWIN 作为 ASP.NET Web API 的宿主
    angularjs webstorm 单元测试 Package.json
  • 原文地址:https://www.cnblogs.com/eosclover/p/13594080.html
Copyright © 2011-2022 走看看