java泛型总结

###1. 特点, 好处

java1.5后出现 包含1.5版本
泛型的出现 解决程序的安全性 保证程序的一致安全机制
使用泛型 避免了类型的强制类型转换 代码就简单
数据类型只能是 应用类型 不能使基本类型,且前后保持一致
泛型的 定义格式:

集合类<数据类型>变量 = new集合类<数据类型>();

###2. 定义使用 ####1) 泛型类

这个<T>参数就可以接受任意类型
对该类创建对象时对泛型进行了定义 方法上 也必须遵从同一规则 如果类上不进行定义 直接使用该方法时候 有这个泛型的时候就可以传任意类型

<T extends Gou> 类泛型 不支持super关键字 继承写法不支持? 通配符

public class FanXing<T>{ }

####2)泛型方法

需要在方法返回值前定义 参数的泛型 如下, 不可定义在返回值后 返回值前加泛型定义, 类上无定义时需要, 否则可以隐藏掉

public <T>void show(T t){ } public class FanXing<T>{ public void show(T t){ } }

####3)泛型变量

不可设置static 泛型变量依赖泛型类, 类上无泛型则 变量报错 T cannot be resolved to a type

public class fanxingtest<T>{ private List<T> list; private T t = null; }

###3. 关键字 java 提供的泛型例子

List<E>... Set<E>... 等泛型控制类

###1) super 关键字

下边界限定 父类限定符, 指 ArrayList 中只能够存放Dog的父类类型的数据 eg: 动物,object对象等其他父类对象(包含自己)。

List<? super Dog> list = new ArrayList<>(); list.add(动物); list.add(哺乳动物)

###2) extends关键字

上边界限定符 指 ArrayList只能够存放Dog的子类对象(包含自己) eg: 二哈, 金毛, 德牧 等... 各种各样的狗

List<? extends Dog> list = new ArrayList<>(); list.add(金毛); list.add(哈士奇)
点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java泛型

一、实现机制java泛型实现方法为类型擦除,基于这种方法实现的泛型称为伪泛型。java泛型只在源代码中存在,在编译后的文件中替换为原生类型,并插入强制转换。(真正的泛型是应该存在于源码、编译后文件、运行期)二、擦除实例源码:List<StringtestListnewArrayList<String();

Dart中的泛型、泛型方法、泛型类、泛型接口

一、Dart中的泛型泛型方法通俗理解:泛型就是解决 类 接口 方法的复用性、以及对不特定数据类型的支持(类型校验)一般用  T  表示泛型getData<T(Tvalue){return

Gson通过借助TypeToken获取泛型参数的类型的方法

最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下。由于Java泛型的实现机制,使用了泛型的代码在运行期间相关的泛型参数的类型会被擦除,我们无法在运行期间获知泛型参数的具体类型(所有的泛型类型在运行时都是Object类型)。但是有的时候

Java泛型详解

引言Java泛型是jdk1.5中引入的一个新特性,泛型提供了编译时的类型检测机制,该机制允许程序员在编译时检测到非法的类型。泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用。本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。泛型基础

Thinking in java Chapter15 泛型

1与C比较2简单泛型泛型类3泛型接口4泛型方法5匿名内部类6构建复杂模型78910“泛型”意思就是:适用于许多许多的类型<h2id"1"1与C比较</h2C