zoukankan      html  css  js  c++  java
  • Java 泛型

    一、什么是泛型

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

    二、泛型的作用

      Java引入泛型的目的是为了类型安全。泛型可以将运行时的错误提前到编译时的错误。

      Java 语言中的泛型基本上完全在编译器中实现,由编译器执行类型检查和类型推断,然后生成普通的非泛型的字节码。这种实现技术称为 擦除(erasure)(编译器使用泛型类型信息保证类型安全,然后在生成字节码之前将其清除)。

    三、泛型的定义

      1、修饰类或接口,放在类或接口名后面

        public class TestClassDefine<T, S extends T>{}

      2、修饰方法,放在作用域限定符(public、private等)后面

        public <T, S extends T> T testGenericMethodDefine(T t, S s){}

    四、泛型的特点

      1、使用泛型T,因为不知道T的具体类型,也就不知道T中包含什么属性和方法,也就不能在定义泛型类、接口、方法的时候调用T的属性和方法等信息。

      2、泛型可以使用继承等修饰符:<T, S extends T> 、<T extends Collection>等

      3、可以使用通配符<? extends ClassName>

      • 在使用泛型类、接口、方法时,如果不知道要传入什么类型的值时,可以使用<? extends ClassName>,表示ClassName对应的子类都可以。
      • 也可以直接使用<?>,表示<? extends Object>。
      • 当然,使用了通配符后,在使用?表示的成员时,因为不知道是哪个类,所以可以调用的属性或方法会受到相应的限制。
  • 相关阅读:
    leetcode 150 逆波兰表达式求值
    leetcode 15 三数之和
    leetcode 12题 数字转罗马数字
    leetcode 134 加油站问题
    socket编程之多次收发数据
    socket编程
    random实现验证码功能
    ECMAScript运算符
    JavaScript数据类型
    window对象
  • 原文地址:https://www.cnblogs.com/huanyou/p/6866587.html
Copyright © 2011-2022 走看看