泛型<T,...>

泛型<T,...>

1. 本质:参数化类型,把类型作为参数传递。

2. 常见形式:泛型类、泛型接口、泛型方法

3.语法:<T,...> T称为类型占位符,表示一种引用类型!

4.好处:

  • (1)提高代码重用性
  • (2)防止类型转换异常,提高代码的安全性

5.代码实现

  • 泛型类

    package com.sun.base.Generic;
    
    /**
     * 泛型类
     * 语法,类名<T>
     * T是类型占位符,表示一种引用类型,如果编写多个使用逗号隔开
     *
     */
    public class Demo01<T> {
        //使用泛型T
        //1、创建变量
        T t;
        //2、泛型作为方法的参数
        public void show(T t){
            System.out.println(t);
        }
        //3、泛型作为方法的返回值
        public T getT() {
            return t;
        }
    
        public void setT(T t) {
            this.t = t;
        }
    }
    
    
  • 泛型接口

    package com.sun.base.Generic;
    
    /**
     * 泛型接口
     * 语法,接口名<T>
     *     注意:不能泛型静态常量
     */
    public interface MyInterface<T> {
        String name = "张三";
        T server(T t);
    }
    
    
  • 泛型方法

    package com.sun.base.Generic;
    
    /**
     * 泛型方法
     * 语法,<T> 返回值类型
     */
    public class MyGenericMethod {
        //泛型方法
        public <T> T show(T t){
            System.out.println("泛型方法"+t);
            return t;
        }
    }
    
  • 测试

    package com.sun.base.Generic;
    
    public class textDemo01 {
        public static void main(String[] args) {
            //使用泛型类创建对象
            //注意:泛型只能使用引用类型,不同泛型类对象不能相互赋值
            //泛型类
            Demo01<String> objectDemo01 = new Demo01<String>();
            objectDemo01.t = "Hello";
            objectDemo01.show("大家好,加油");
            String t = objectDemo01.getT();
            Demo01<Integer> integerDemo01 = new Demo01<>();
            integerDemo01.t = 100;
            integerDemo01.show(200);
            Integer t1 = integerDemo01.getT();
            //泛型接口
            MyInterfaceImpl impl = new MyInterfaceImpl();
            impl.server("我很帅");
    //        泛型方法
            MyGenericMethod myGenericMethod = new MyGenericMethod();
            myGenericMethod.show("少年强");
            myGenericMethod.show(100);
            myGenericMethod.show(9.99);
    
        }
    }
    

    6.泛型集合

    • 概念:参数化类型、类型安全的集合,强制集合元素的类型必须一致。

    • 特点:(1)编译时即可检查,而非运行时抛出异常。

      ​ (2)访问时,不必类型转换(拆箱)。

      ​ (3)不同泛型直接引用不能向后赋值,泛型不存在多态。

posted @ 2020-12-09 12:18  某人很酷  阅读(75)  评论(0)    收藏  举报