泛型

这种语法机制,只在程序编译阶段起作用,只是给编译器参考的。(运行阶段泛型没用)

使用了泛型好处是什么?

第一:集合中存储的元素类型统一。

第二:从集合中取出的元素类型是泛型指定的类型,不需要进行大量的向下转型。

泛型的缺点是什么?

导致集合中存储的元素缺乏多样性。

代码示例:

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中的泛型机制相关推荐

  1. java初反射_java中的反射机制

    前言: ​相信很多人都知道反射可以说是Java中最强大的技术了,它可以做的事情太多太多,很多优秀的开源框架都是通过反射完成的,比如最初的很多注解框架,后来因为java反射影响性能,所以被运行时注解AP ...

  2. java 泛型例子_java中的泛型的一些常见例子

    /** * @author Rollen-Holt 使用泛型 */ class hello { hello(){ } public T getName(){ return name; } public ...

  3. java基本数据类型泛型_Java中的泛型

    泛型规范在JDK1.5版本中被添加,使用泛型机制编写的代码比起随意使用Object变量然后再进行强制类型转换的代码具有更高的安全性和可读性,同时也更为简洁.泛型对于集合类尤其有用,例如 ArrayLi ...

  4. java 文件通配符_Java中泛型通配符的使用方法示例

    本文实例讲述了Java中泛型通配符的使用方法.分享给大家供大家参考,具体如下: 一 点睛 引入通配符可以在泛型实例化时更加灵活地控制,也可以在方法中控制方法的参数. 语法如下: 泛型类名 extend ...

  5. java中什么泛型_java中的泛型(一)

    在java中我们定义接口其实定义的是这个类的功能,在很多时候我们并不关心这个类的类型而是这个类的能力.泛型的出现让我们的代码和代码所能操作的类型不在绑定在一起,不仅可以复用代码降低耦合还可以提高代码的 ...

  6. java中什么泛型_Java中的泛型

    1.为什么要使用泛型? (1)适用于多种数据类型执行相同的代码,利于封装(如,封装Base类.统一的适用于recycleview的adapter等) (2)泛型中的类型在使用的时候,直接指定即可,不需 ...

  7. java反射机制是什么_java中的反射机制是什么?

    java中的反射机制是什么? 发布时间:2020-05-21 22:45:50 来源:亿速云 阅读:156 作者:鸽子 java:"一切即对象",感觉java语言本身在不断践行着这 ...

  8. java 鸭子类_Java中实现鸭子类型机制

    "当看到一只鸟走起来像鸭子.游泳起来像鸭子.叫起来也像鸭子,那么这只鸟就可以被称为鸭子."[引用维基] 一般而言,鸭子类型机制常见/用于动态语言,如Python.Ruby.JS.来 ...

  9. java final内存机制_Java中的内存处理机制和final、static、final static总结

    装载自:http://blog.csdn.net/wqthaha/article/details/20923579 Java程序运行在JVM上,可以把JVM理解成Java程序和操作系统之间的桥梁,JV ...

最新文章

  1. LightOJ 1364 Expected Cards(概率+DP)
  2. GridView列值绑定
  3. Qt 4.8.4 Qt Creator 2.6.1 安装和配置(Windows)
  4. 网站设计大访问量应用的解决方案
  5. 怎么转换科学计数法字符串_【编码技巧】python字符串格式化教你正确打印
  6. python跑一亿次循环_python爬虫爬取微博评论
  7. 区块链安全-以太坊智能合约静态分析
  8. .NET控件Designer架构设“.NET研究”计
  9. Spring Boot学习总结(6)——SpringBoot解决ajax跨域请求问题的配置
  10. 一文掌握面向Windows平台的深度学习工控程序开发(使用Paddle Inference部署MFC、C#程序,内含完整代码链接)
  11. opencv查看版本路径
  12. 制作自己专属的抓包工具
  13. Mac pro M2芯片如何进入恢复模式
  14. re -12 buuctf [Zer0pts2020]easy strcmp
  15. 淘宝补单怎么防止降权?如何避免降权?
  16. 《Fooled by Randomness》读书笔记
  17. CI Weekly #21 | iOS 持续集成快速入门指南
  18. python简单爬虫 指定汉字的笔画动图下载
  19. php图片是啥,PHP图片操作
  20. 弘辽科技浅谈移动互联网时代如何定位品牌

热门文章

  1. CSS的alt:图片无法显示时候显示alt内容
  2. 微信小程序的点击复制功能
  3. python3命令行安装pip_win10系统下python3安装及pip换源和使用教程
  4. 浅谈php7 引入的“??“和 “?:“的区别
  5. java多线程遇到的问题_关于Java多线程遇到的问题.
  6. java对文件的操作详解,java对各种文件的操作详解
  7. small用于不连续数组_Excel公式技巧19: 在方形区域内填充不重复的随机整数
  8. rpm安装的mysql如何数据迁移_linux下mysql数据库的rpm安装步骤及常见问题的解决
  9. java批量删除接口怎么定义_教你在Java接口中定义方法
  10. CentOS6.5启动网络