【JDBC】集合、反射和泛型复习-3

泛型

广泛的类型,不确定的类型。

泛型这个概念是对定义类结构的角度来理解的,它这么一个特点,写的类中的属性的类型,可以由外部调用的时候来决定!不用确定一个类型,这个角度的广泛类型!

写法

java 复制代码
class 类名<泛型类型,泛型类型,....>{
}

泛型的术语

java 复制代码
ArrayList<E> : E表示类的变量或类型参数, 不确定类型,可以被替换的类型
ArrayList<String> : 参数化的类型
ArrayList<String> : String参数的实例或实际参数类型
ArrayList<String> : <>是type of,....的类型
ArrayList : 原始类型

使用泛型

java 复制代码
Collecttion<String> c = new ArrayList();
Collecttion c = new ArrayList<String>();
Collection<String> collection = new ArrayList<>();
Collection<String> collection = new ArrayList<String>(); //前后必须一样!

注意:数组不能用泛型!

①定义类的时候使用泛型

java 复制代码
public class Person<T>{
private T age;
}

②构造方法用使用泛型

java 复制代码
public class Person<T>{
private T age;
public Person(T age){}
}

③new一个有泛型的类的时候,不指定泛型,泛型的类型会被制定为Object

④泛型的通配符

java 复制代码
Person<Integer> p1 = new Person<>();
Person<Float> p2 = new Person<>();
p1和p2是不一样的!
public void println(Person<?> p){} // "?"通配符

注意:只能接受输出,不能修改,不知道?是什么类型

⑤泛型方法:前面是将泛型用在类的定义上,除外,泛型还可用在方法的定义上!

java 复制代码
public <T> T func(){ return T }

⑥泛型的上限和下限

?是java泛型中的通配符,它代表java中的某一个类,那么就代表类型T的某个子类,就代表类型T的某个父类.

这里我们先定义一组有继承关系的类:

//子类-->父类

小红苹果--红苹果--苹果--水果--好吃的--吃的

那么 代表的是左侧蓝字和绿字的类中的某个类,而代表的就是绿字和红字的类中的某个类。

相关推荐
AI+程序员在路上40 分钟前
VS Code 完全使用指南:下载、安装、核心功能与 内置AI 编程助手实战
开发语言·人工智能·windows·开源
invicinble1 小时前
这里对java的知识体系做一个全域的介绍
java·开发语言·python
catchadmin1 小时前
使用 PHP TrueAsync 改造 Laravel 协程异步化的可行路径
开发语言·php·laravel
wbs_scy1 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·开发语言
ss2731 小时前
食谱推荐系统功能测试如何写?
java·数据库·spring boot·功能测试
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题】【Java基础篇】第15题:JDK1.7中HashMap扩容为什么会发生死循环?如何解决
java·开发语言·数据结构·后端·面试·哈希算法
try2find2 小时前
打印ascii码报错问题
java·linux·前端
014-code2 小时前
CompletableFuture 实战模板(超时、组合、异常链处理)
java·数据库
Nicander2 小时前
多数据源下@transcation事务踩坑
java·后端
郑州光合科技余经理2 小时前
同城O2O海外版二次开发实战:从支付网关到配送算法
开发语言·前端·后端·算法·架构·uni-app·php