java 泛型机制_java中的泛型机制
泛型
这种语法机制,只在程序编译阶段起作用,只是给编译器参考的。(运行阶段泛型没用)
使用了泛型好处是什么?
第一:集合中存储的元素类型统一。
第二:从集合中取出的元素类型是泛型指定的类型,不需要进行大量的向下转型。
泛型的缺点是什么?
导致集合中存储的元素缺乏多样性。
代码示例:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Demo {
public static void main(String[] args) {
/*使用泛型List之后,
表示List集合中只允许存储Animal类型的数据。
用泛型来指定集合中存储的数据类型。*/
List list = new ArrayList();
/*指定List集合中只能存储Animal,
那么存储String就编译报错了。这样用了泛型之后,
集合中元素的数据类型更加统一了。*/
list.add(new Animal());
list.add(new Cat());
/*这个表示迭代器迭代的是Animal类型。*/
Iterator it = list.iterator();
while (it.hasNext()){
/*使用泛型之后,每一次迭代返回的数据都是Animal类型。*/
Animal a = it.next();
/*这里不需要进行强制类型转换,直接调用*/
a.move();
}
}
}
class Animal{
public void move(){
System.out.println("Animal move");
}
}
class Cat extends Animal{
public void move(){
System.out.println("Cat move");
}
}
输出:
类型自动推断
1、JDK8之后引入自动类型推断机制。(又称为钻石表达式)
2、上面的第10行代码改为:
List list = new ArrayList<>();
自定义泛型
1、自定义泛型的时候,<>尖括号中的是一个标识符,随便写。
2、java源代码中经常出现的是:和,E是Element单词首字母。T是Type单词首字母。
3、代码示例:
public class Demo{
/*这里的qwe是标识符,随便写*/
public void dosome(qwe o){
System.out.println(o);
}
public static void main(String[] args) {
Demo demo = new Demo<>();
demo.dosome("aaa");
Demo demo1 = new Demo<>();
demo1.dosome(123);
}
}
输出:
java 泛型机制_java中的泛型机制相关推荐
- java初反射_java中的反射机制
前言: 相信很多人都知道反射可以说是Java中最强大的技术了,它可以做的事情太多太多,很多优秀的开源框架都是通过反射完成的,比如最初的很多注解框架,后来因为java反射影响性能,所以被运行时注解AP ...
- java 泛型例子_java中的泛型的一些常见例子
/** * @author Rollen-Holt 使用泛型 */ class hello { hello(){ } public T getName(){ return name; } public ...
- java基本数据类型泛型_Java中的泛型
泛型规范在JDK1.5版本中被添加,使用泛型机制编写的代码比起随意使用Object变量然后再进行强制类型转换的代码具有更高的安全性和可读性,同时也更为简洁.泛型对于集合类尤其有用,例如 ArrayLi ...
- java 文件通配符_Java中泛型通配符的使用方法示例
本文实例讲述了Java中泛型通配符的使用方法.分享给大家供大家参考,具体如下: 一 点睛 引入通配符可以在泛型实例化时更加灵活地控制,也可以在方法中控制方法的参数. 语法如下: 泛型类名 extend ...
- java中什么泛型_java中的泛型(一)
在java中我们定义接口其实定义的是这个类的功能,在很多时候我们并不关心这个类的类型而是这个类的能力.泛型的出现让我们的代码和代码所能操作的类型不在绑定在一起,不仅可以复用代码降低耦合还可以提高代码的 ...
- java中什么泛型_Java中的泛型
1.为什么要使用泛型? (1)适用于多种数据类型执行相同的代码,利于封装(如,封装Base类.统一的适用于recycleview的adapter等) (2)泛型中的类型在使用的时候,直接指定即可,不需 ...
- java反射机制是什么_java中的反射机制是什么?
java中的反射机制是什么? 发布时间:2020-05-21 22:45:50 来源:亿速云 阅读:156 作者:鸽子 java:"一切即对象",感觉java语言本身在不断践行着这 ...
- java 鸭子类_Java中实现鸭子类型机制
"当看到一只鸟走起来像鸭子.游泳起来像鸭子.叫起来也像鸭子,那么这只鸟就可以被称为鸭子."[引用维基] 一般而言,鸭子类型机制常见/用于动态语言,如Python.Ruby.JS.来 ...
- java final内存机制_Java中的内存处理机制和final、static、final static总结
装载自:http://blog.csdn.net/wqthaha/article/details/20923579 Java程序运行在JVM上,可以把JVM理解成Java程序和操作系统之间的桥梁,JV ...
最新文章
- LightOJ 1364 Expected Cards(概率+DP)
- GridView列值绑定
- Qt 4.8.4 Qt Creator 2.6.1 安装和配置(Windows)
- 网站设计大访问量应用的解决方案
- 怎么转换科学计数法字符串_【编码技巧】python字符串格式化教你正确打印
- python跑一亿次循环_python爬虫爬取微博评论
- 区块链安全-以太坊智能合约静态分析
- .NET控件Designer架构设“.NET研究”计
- Spring Boot学习总结(6)——SpringBoot解决ajax跨域请求问题的配置
- 一文掌握面向Windows平台的深度学习工控程序开发(使用Paddle Inference部署MFC、C#程序,内含完整代码链接)
- opencv查看版本路径
- 制作自己专属的抓包工具
- Mac pro M2芯片如何进入恢复模式
- re -12 buuctf [Zer0pts2020]easy strcmp
- 淘宝补单怎么防止降权?如何避免降权?
- 《Fooled by Randomness》读书笔记
- CI Weekly #21 | iOS 持续集成快速入门指南
- python简单爬虫 指定汉字的笔画动图下载
- php图片是啥,PHP图片操作
- 弘辽科技浅谈移动互联网时代如何定位品牌
热门文章
- CSS的alt:图片无法显示时候显示alt内容
- 微信小程序的点击复制功能
- python3命令行安装pip_win10系统下python3安装及pip换源和使用教程
- 浅谈php7 引入的“??“和 “?:“的区别
- java多线程遇到的问题_关于Java多线程遇到的问题.
- java对文件的操作详解,java对各种文件的操作详解
- small用于不连续数组_Excel公式技巧19: 在方形区域内填充不重复的随机整数
- rpm安装的mysql如何数据迁移_linux下mysql数据库的rpm安装步骤及常见问题的解决
- java批量删除接口怎么定义_教你在Java接口中定义方法
- CentOS6.5启动网络