zoukankan      html  css  js  c++  java
  • 泛型

    泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。

    有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。

    泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的。

    泛型通配符T,E,K,V区别===============》使用大写字母A,B,C,D......X,Y,Z定义的,就都是泛型

    • ? 表示不确定的java类型
    • T (type) 表示具体的一个java类型
    • K V (key value) 分别代表java键值中的Key Value
    • E (element) 代表Element

    Class<T>在实例化的时候,T要替换成具体类

    Class<?>它是个通配泛型,?可以代表任何类型,主要用于声明时的限制情况

     ?使用场景 和Object一样,和C++的Void 指针一样,基本上就是不确定类型,可以指向任何对象。一般用在引用。

    泛型的使用

    泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法。

     

    泛型类:===》定义:定义类时使用泛型。

    class 类名<字母列表>{

    修饰符 字母 属性;

    修饰符 构造器(字母){   }

    修饰符 返回类型 方法(字母)

    }

    =====》

    public class Student<T1,T2>

    Student<String,Integer> stu = new Student<String,Integer> ();

    泛型方法:

    泛型方法的定义======》(输入参数是泛型)

    [public] [static] <T> 返回值类型 方法名(T 参数列表)

    public static <T> void test(T a)

  • 相关阅读:
    过滤字符串
    sql业务分割
    如何用core自动创建model,与数据库连接
    记录日志
    easyui获取选中行上一行的数据
    获取天气插件代码
    粘包问题
    网络编程
    异常处理
    isinstance和issubclass、元类、反射
  • 原文地址:https://www.cnblogs.com/KL2016/p/14678266.html
Copyright © 2011-2022 走看看