java泛型总结

Wesley13
• 阅读 691

###1. 特点, 好处

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

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

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

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

类泛型 不支持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(哈士奇)
点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java泛型
一、实现机制java泛型实现方法为类型擦除,基于这种方法实现的泛型称为伪泛型。java泛型只在源代码中存在,在编译后的文件中替换为原生类型,并插入强制转换。(真正的泛型是应该存在于源码、编译后文件、运行期)二、擦除实例源码:List<StringtestListnewArrayList<String();
Alice423 Alice423
3年前
Dart中的泛型、泛型方法、泛型类、泛型接口
一、Dart中的泛型泛型方法通俗理解:泛型就是解决 类 接口 方法的复用性、以及对不特定数据类型的支持(类型校验)一般用  T  表示泛型getData<T(Tvalue){return
Stella981 Stella981
3年前
Gson通过借助TypeToken获取泛型参数的类型的方法
最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下。由于Java泛型的实现机制,使用了泛型的代码在运行期间相关的泛型参数的类型会被擦除,我们无法在运行期间获知泛型参数的具体类型(所有的泛型类型在运行时都是Object类型)。但是有的时候
Wesley13 Wesley13
3年前
Java泛型详解
引言Java泛型是jdk1.5中引入的一个新特性,泛型提供了编译时的类型检测机制,该机制允许程序员在编译时检测到非法的类型。泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用。本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。泛型基础
Easter79 Easter79
3年前
Thinking in java Chapter15 泛型
1与C比较2简单泛型泛型类3泛型接口4泛型方法5匿名内部类6构建复杂模型78910“泛型”意思就是:适用于许多许多的类型<h2id"1"1与C比较</h2C
Stella981 Stella981
3年前
20175209 《Java程序设计》第八周学习总结
20175209《Java程序设计》第八周学习总结一、教材知识点总结1.泛型1.泛型类声明:格式classPeople<EPeople是泛型类名称E是泛型列表,可以是任何对象或接口,但不能是基本类型数据
Wesley13 Wesley13
3年前
Java泛型一览笔录
1、什么是泛型?泛型(Generics)是把类型参数化,运用于类、接口、方法中,可以通过执行泛型类型调用分配一个类型,将用分配的具体类型替换泛型类型。然后,所分配的类型将用于限制容器内使用的值,这样就无需进行类型转换,还可以在编译时提供更强的类型检查。2、泛型有什么用?泛型主要有两个好处:(1)消除显
Wesley13 Wesley13
3年前
JAVA 泛型中的通配符 T,E,K,V 傻傻分不清楚 ?
前言Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型带来的好处在没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带
可莉 可莉
3年前
20175209 《Java程序设计》第八周学习总结
20175209《Java程序设计》第八周学习总结一、教材知识点总结1.泛型1.泛型类声明:格式classPeople<EPeople是泛型类名称E是泛型列表,可以是任何对象或接口,但不能是基本类型数据