简述<T> 与 <?>
引
- jdk1.5以后引入了泛型的概念,即:<>,规定了集合中元素类型
比如下面代码:
List list1 = new ArrayList();
List<String> list2 = new ArrayList();
list1.add(1);
list1.add("1");
list2.add(1);//明显会报错
总而言之就是,泛型规范了集合的元素的类型(让集合知道了自己应该装的是什么类型),不符合,编译不通过。
等:
分别代表:T - Type, E - Element,N - Number
作用分析,如下
public class Demo01 {
@Test
public void test() {
Box<String> b = new Box<>();
b.get();
}
}
class Box<T>{
public T get(T t) {return t;}
}
- Box类声明了泛型T,但是T的类型,是由引用者声明,一旦声明了T的类型,比如String;Box中的get方法的参数类型,返回值类型,也都是String。总而言之,该类中所有出现T的地方,都只接受T类型的参数。
:
- 等价于: <? extends Object>
- 他叫作:类型通配符
- 出现于方法的参数里
public static void getData(Box<?> data) {
System.out.println("data :" + data.getData());
}
- 作用:限制参数类型,
- :限制参数类型为 Object和其子类(不知道或者不关心参数的具体类型);
- :限制参数类型为Number和其子类;
- :限制参数类型为Number和其父类;
简单总结:
- 作用在于声明整个类/接口,一旦使用了某种类型,该类/接口中,其余出现T的位置,也都是T类型;
- :是简写,限制了某个方法传入参数的类型;
本文参考:http://www.cnblogs.com/lwbqqyumidi/p/3837629.html
简述<T> 与 <?>的更多相关文章
- 简述 OAuth 2.0 的运作流程
本文将以用户使用 github 登录网站留言为例,简述 OAuth 2.0 的运作流程. 假如我有一个网站,你是我网站上的访客,看了文章想留言表示「朕已阅」,留言时发现有这个网站的帐号才能够留言,此时 ...
- JavaScript单线程和浏览器事件循环简述
JavaScript单线程 在上篇博客<Promise的前世今生和妙用技巧>的开篇中,我们曾简述了JavaScript的单线程机制和浏览器的事件模型.应很多网友的回复,在这篇文章中将继续展 ...
- Design Patterns Simplified - Part 3 (Simple Factory)【设计模式简述--第三部分(简单工厂)】
原文链接:http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part3-factory/ Design ...
- Android网络定位服务定制简述
Android 添加高德或百度网络定位服务 Android的网络定位服务以第三方的APK方式提供服务,由于在国内Android原生自带的com.google.android.gms服务几乎处于不可用状 ...
- 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述
微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...
- 简述ASP.NET MVC原理
1.为什么ASP.NET需要MVC? 因为随着网站的的数量级越来越大,原始的网站方式,这里指的是WebForm,在运行速度和维护性方面,以及代码量上面,越来越难以满足日益庞大的网站维护成本.代码的重构 ...
- Design Patterns Simplified - Part 2 (Singleton)【设计模式简述--第二部分(单例模式)】
原文链接: http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part-2-singleton/ De ...
- 【翻译】设计模式学习系列1---【Design Patterns Simplified: Part 1【设计模式简述:第一部分】】
原文链接:http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part1/ Design Pattern ...
- Android开发3:Intent、Bundle的使用和ListView的应用 、RelativeLayout(相对布局)简述(简单通讯录的实现)
前言 啦啦啦~博主又来骚扰大家啦~大家是不是感觉上次的Android开发博文有点长呢~主要是因为博主也是小白,在做实验的过程中查询了很多很多概念,努力去理解每一个知识点,才完成了最终的实验.还有就是随 ...
- iOS开发路线简述
1 iOS开发环境1.1 开发环境标准的配置是MacOSX+Xcode.MacOSX的话首选用苹果电脑,Macmini最便宜只要4000多就好了然后自己配一个显示器,MacBookPro 也可以,不推 ...
随机推荐
- vs2010帮助文件安装完全攻略
1.VS2010帮助文件不支持重新配置,这个时候打开C:\Program Files\Microsoft Help Viewer\1.0目录,找到“HelpLibManager.exe.config” ...
- C++入门(2)
第一个程序,输入输出: #include <iostream> using namespace std; int main() { cout << "Hello, w ...
- IntelliJ IDEA的几个常用快捷键
一.将IntelliJ IDEA的快捷键设置为Eclipse环境的快捷键 如果之前长期使用Eclipse作为开发工具的程序员在刚开始接触IDEA的时候肯定会很不习惯,所以如果你没有太多时间去研究的话可 ...
- 使用Echarts进行可视化的数据线呈现
由于游戏后台需要统计游戏玩家的支付情况,恰好那天看见同学群里聊天说到了Echarts,于是我就看了眼,一看,哟,还是百度的产品,看了文档,示例,确实很屌的样子啊,于是自己就开始试了,最终效果如下: 个 ...
- Mybatis 一对一、一对多、多对多
一对一返回resultType <!-- 查询订单关联查询用户信息 resultType --> <select id="findOrderCustom" res ...
- SPOJ - COT Count on a tree
地址:http://www.spoj.com/problems/COT/en/ 题目: COT - Count on a tree #tree You are given a tree with N ...
- 使用Spring Session和Redis解决分布式Session跨域共享问题
http://blog.csdn.net/xlgen157387/article/details/57406162 使用Spring Session和Redis解决分布式Session跨域共享问题
- AB测试的需求
一.背景 涉及到的项目是 SDK, 用户量 几千万级别,需要调整的是 订单购买整个逻辑,已经发现了低概率问题,影响到的订单不到 0.001% ,但是每周总有几个用户向客服反馈问题.整个逻辑问题,在我入 ...
- iOS开发之HelloKit代码片段
完整代码托管:https://github.com/1042710553/HelloKit.git /************************/plist/****************** ...
- CSS 媒体类型
CSS 媒体类型 媒体类型允许你指定文件将如何在不同媒体呈现.该文件可以以不同的方式显示在屏幕上,在纸张上,或听觉浏览器等等. 一.媒体类型 一些CSS属性只设计了某些媒体.例如"voice ...