| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> JAVA泛型,详细介绍 -> 正文阅读 |
|
[Java知识库]JAVA泛型,详细介绍 |
目录 泛型泛型的引入坐标类Point { ?? ?x ?? ?y } 背景:?? ?坐标类取值有很多种可能。 ?? ?比如:10.1,20.1都是double型 ?? ?东经101度,北纬32度 是字符串型 ?? ?11,32都是整型 ?? ?当x和y不小心设置为不同的类型时,在进行强制类型转换时,就会发生运行时异常(类型转换异常),强转发生的,这个错误是在编译期无法发现的,所以此时泛型应运而生. 1.泛型的基本使用( 守门员),编译期检查类型是否正确 所谓的泛型指就是在类定义时不会设置类中的属性或方法参数的具体类型,而是在类使用时(创建对象时)再进行类型的定义.
类声明后< >中这个T被称为类型参数,用于指代任意类型,实际上T只是代表,写啥都行 表示此事value1,value2都是在定义时没有明确类型,只有在使用时才告知贬义词类型. 处于规范而言,类型参数用单个的大写字母来代替,常见如下: T:代表任意类 E:表示Element的意思,或是异常 K:与V搭配使用.Map<Integer,String> V:
如果要定义多种类型
我们使用泛型改造Point时会发现,当创建Point对象时设置的类型和实际存储类型不同时,编译就会报错,程序无法启动,提前将问题暴露 泛型不光编译期就会校验类型以外,使用泛型不需要强制类型转换
2.泛型方法此处泛型方法指的是有自己的类型参数 下边代码中表示此方法是个泛型方法,有一个类型参数<T>不是返回值,只是告知编译器这是一个泛型的声明 void值没有返回值
泛型方法始终以自己的类型参数为准,和类中的类型参数无关(为了避免混淆,一般定义泛型方法时,尽量避免使用类中 使用过的类型参数字母) 完整的泛型方法 <S>表示fun方法是个泛型方法,有一个类型参数S 中间的S表示fun方法的返回值 括号中的S表示方法的形参是S类型 //完整的泛型方法
3.泛型接口//表示该接口是一个泛型接口
子类实现此接口时有两种选择,要么继续保留泛型,要么定义子类时明确类型 保留泛型的方式
明确类型的方式
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:31:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |