类型本来有:简单类型和复杂类型,引入泛型后把复杂类型分的更细了;

  • 现在List<Object>, List<String>是两种不同的类型;且无继承关系;

  • 泛型的好处如:

    开始版本

      public void write(Integer i, Integer[] ia);public void write(Double  d, Double[] da);
    

    泛型版本

      public <T> void write(T t, T[] ta);
    

    简便了代码

定义泛型

  • 1.定义在类后面

    紧跟类名后面

      public class TestClassDefine<T, S extends T>{}
    

    定义泛型 T, S, 且S 继承 T

  • 2.定义在方法装饰符后面

    紧跟修饰符后面(public)

      public <T, S extends T> T testGenericMethodDefine(T t, S s){}
    

    定义泛型 T, S, 且S 继承 T

实例化泛型

  • 1.实例化定义在类上的泛型

第一声明类变量或者实例化时。例如

     List<String> list;list = new ArrayList<String>;

第二继承类或者实现接口时。例如

 public class MyList<E> extends ArrayList<E> implements List<E> {...}
  • 2.实例化定义方法上的泛型<br/>

当调用范型方法时,编译器自动对类型参数(泛型)进行赋值,当不能成功赋值时报编译错误

通配符(?)

上面有泛型的定义赋值;当在赋值的时候,上面一节说赋值的都是为具体类型,当赋值的类型不确定的时候,我们用通配符(?)代替了:

 List<?> unknownList;List<? extends Number> unknownNumberList;List<? super Integer> unknownBaseLineIntgerList;

在Java集合框架中,对于参数值是未知类型的容器类,只能读取其中元素,不能向其中添加元素, 因为,其类型是未知,所以编译器无法识别添加元素的类型和容器的类型是否兼容,唯一的例外是NULL

源自:http://blog.csdn.net/jinuxwu/article/details/6771121

java泛型T和通配符问号的区别相关推荐

  1. Java泛型中extends和super的区别?

    区别 <? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概 ...

  2. 一文读懂Java泛型中的通配符 ?

    之前不太明白泛型中通配符"?"的含义,直到我在网上发现了Jakob Jenkov的一篇文章,觉得很不错,所以翻译过来,大家也可以点击文末左下角的阅读原文看英文版的原文. 下面是我的 ...

  3. 聊一聊Java 泛型中的通配符 T,E,K,V,?

    点击上方"方志朋",选择"设为星标" 回复"1024"获取独家整理的学习资料 作者:glmapper juejin.im/post/5d57 ...

  4. 聊一聊-JAVA 泛型中的通配符 T,E,K,V,?

    前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说所操作的数据 ...

  5. JAVA 泛型中的通配符 T,E,K,V,?

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群",加入新技术 来源:8rr.co/2Xqx 前言 Java 泛型(generic ...

  6. 原神一面:Java 泛型中的通配符 T,E,K,V,?,你确定都了解吗?

    点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 Sometimes, the same thing, we can ...

  7. Java泛型专题之2、聊一聊-JAVA 泛型中的通配符 T,E,K,V,?

    目录 1. 前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说 ...

  8. Java泛型三:通配符详解extends super

    在java泛型中,? 表示通配符,代表未知类型,< ? extends Object>表示上边界限定通配符,< ? super Object>表示下边界限定通配符. 通配符 与 ...

  9. Java 泛型中的通配符详解

    目录 1.如何定义和使用上界通配符? 2.如何定义和使用无界通配符? 3.如何定义和使用下界通配符? 4.如何使用通配符定义泛型类或接口之间的子类型关系? 5.通配符的捕获和辅助方法 6.通配符使用指 ...

  10. java泛型概念与通配符含义初探

    一般类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类.如果要编写可以应用与多重类型的代码,这种刻板的限制对代码的束缚就会很大. 泛型的概念: 泛型实现了参数化类型的概念,使代码可以应用于 ...

最新文章

  1. BCH潜力无限,引领区块链发展潮流
  2. 【 FPGA/IC 】addsub 的实现
  3. delphi 串口通信发送_STM32第五章串口通讯详解
  4. 【Linux】一步一步学Linux——bzip2命令(65)
  5. ZooKeeper学习第一期---Zookeeper简单介绍(转)
  6. 【C++深度剖析教程16】智能指针的分析
  7. 解决margin塌陷的问题_解决margin塌陷与margin合并(margin)清除浮动问题
  8. PID参数整定法(2)
  9. 训练自己的数据_PyTorch版CenterNet训练自己的数据集
  10. linux编译器下载地址,GNU Compiler Collection(gcc编译器) v4.9.1 linux版
  11. android 串口工具下载,SerialTool串口调试工具-SerialTool apkv1.2 android最新版_永辉资源网...
  12. 東京タワー初めてphoto
  13. hashmap 线程不安全
  14. C# Console Application
  15. android开源库合集
  16. [经]信用体系,金融改革
  17. linux字体文件路径,Linux下安装字体
  18. 成功GET一款高大上又不显俗的Linux时间锁屏软件-GLUQLO
  19. 【中医学】10 针灸-2:常用腧穴
  20. 带电粒子在匀强电场中的运动(忽略重力)

热门文章

  1. 电脑软件从通过运行开启(耍帅必会)
  2. 微信统一下单需注意问题
  3. java面试题之什么是ThreadLocal?底层如何实现的?
  4. 移动端的头部标签和meta
  5. 利用纯粹的CSS3替代小图标---向右箭头
  6. 三层实例--加入信息
  7. Web应用开发基本技术及思想
  8. jquery 的一款比较好的Menu
  9. 中秋前小假期的一些想法
  10. Java web切面编程