A:原生态类型如 List:不带任何类型参数的泛型名称
B:参数化类型如List<String> :表示元素类型为String的列表
C:无限制的通配符类型如List<?>:表示元素为未知类型
参数化类型优点
1)安全,提供了编译前检查
2)方便,不用显示的cast,自动完成
原生态类型存在的主要目的是兼容性。
List和List<Object>区别
后者提供了编译期检查,明确的表明集合中可以放任何类型的元素
举例:对于方法 f(List param)和方法f(List<Object>),前者可以接受List<String>和List<Integer>类型的元素,后者则不行;因为后者可以接受任何类型的元素,即是Object类的子类,而List<String>只能接受String类型的元素,List<Integer>只能接受Integer类型的元素
因此,List类型丢了了安全性,而List<Object>保证了安全性
List和List<?>区别
后者一般用于只读模式
List<?>因为不知道里面元素的类型,所以不能执行add方法,除非是null
import java.util.ArrayList;
import java.util.List;
public class ListDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> strings = new ArrayList<String>();
//方法add1和add2显示了List和List<Object>的区别
//方法add1
//由于参数是List,当把List<String>作为参数传进来时,list添加了一个Integer类型,
//string列表中添加了Integer类型的元素,破坏了安全性
add1(strings,new Integer(1));
String s = strings.get(0); //出错,因为是Integer类型
//方法add2无法通过编译,因为无法接受List<String>作为参数
//The method add2(List<Object>, Object) in the type ListDemo is
//not applicable for the arguments (List<String>, Integer)
add2(strings,new Integer(1));
//方法add1和add3显示了List和List<?>的区别
//方法add3无法通过编译,List<?>一般只能用于读取,不能add,除非是null
//The method add(capture#1-of ?) in the type List<capture#1-of ?>
//is not applicable for the arguments (Object)
add3(strings,new Integer(1));
}
private static void add1(List list,Object o)
{
list.add(o);
}
private static void add2(List<Object> list,Object o)
{
list.add(o);
}
private static void add3(List<?> list,Object o)
{
list. add(o);//错误
list.add(null);//正确,可以添加null
}
}
相关推荐
可进行压缩图片和添加水印,对图片有恶意代码的进行重新创建新图片替代,如果不是图片类型的禁止上传,改后缀,工具改二进制码为图片码都无效,前后端都进行检测,避免关闭javascript进行渗透。
近年来,PHP持续进行性能改进与新特性的引入,如PHP 7系列版本在速度上有了显著提升,新增了类型声明、标量类型提示、null合并运算符等语法特性,进一步提升了开发效率和代码质量。 总的来说,PHP作为一种成熟的Web...
另外,在写这个项目之前,我对 JavaScript 的掌握程度仅仅是勉强能使用 Jquery 和 Ajax,但 React 使用到了 ES6 的内容,因此许多 JS 的代码都是参照官网和Github上源码照猫画虎写的,并非专业前端,代码写的水平不...
libs\ -- 原生态引擎库 res\ -- 图片,字符的资源库 src\ -- 程序(java)文件 AndroidManifest.xml -- 项目的配置文件 project.properties -- 配置Android版本文件 readme.txt -- 本内容 六.---- 不足与该...
近年来,PHP持续进行性能改进与新特性的引入,如PHP 7系列版本在速度上有了显著提升,新增了类型声明、标量类型提示、null合并运算符等语法特性,进一步提升了开发效率和代码质量。 总的来说,PHP作为一种成熟的Web...
多种设备支持:Android操作系统可以运行在多种不同类型的设备上,包括手机、平板电脑、智能电视、汽车导航系统等。 此外,Android系统还有一些常见的问题,如应用崩溃、电池耗电过快、Wi-Fi连接问题、存储空间不足、...
近年来,PHP持续进行性能改进与新特性的引入,如PHP 7系列版本在速度上有了显著提升,新增了类型声明、标量类型提示、null合并运算符等语法特性,进一步提升了开发效率和代码质量。 总的来说,PHP作为一种成熟的Web...
多种设备支持:Android操作系统可以运行在多种不同类型的设备上,包括手机、平板电脑、智能电视、汽车导航系统等。 此外,Android系统还有一些常见的问题,如应用崩溃、电池耗电过快、Wi-Fi连接问题、存储空间不足、...
NativeApp 使用传统原生态Android SDK来实现的应用 WebApp 基于浏览器来实现的一种应用 HybridApp 一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行 优雅降级...
首先打开“工具”菜单,单击“宏”命令中的“Visual Basic编辑器”,进入Visual Basic编辑环境,在“工程-VBAobject”栏中的当前表上单击鼠标右键,选择“插入”-“模块”,在右边栏创建下面的函数rrr,代码如下: ...
kangPHP内置模板标签 支持模板缓存编译和译实时编译,支持php原生态语句并可轻松拓展其他模板引擎 跨平台性 kangPHP不仅完美支持LAMP平台而且对WAMP平台支持性也很卓越。用户完全不用担心跨平台出错 缓存...
后台管理系统支持移动设备,可手机随时随地访问、管理和更新网站,开放式PHP原生态模板在线编译,音频视频发布直接生成HTML5代码,能够适应各种界面浏览器。 这个论坛系统虽然是仿天涯论坛制作的,但是很多功能也是...
25.开放式PHP原生态模板,用户任意修改、穿插内容或广告,无需花时间研究额外规则,模板修改成本更低; 26.可对模板备份,使用备份模板,并可对模板恢复系统初始状态; 27.模板修改全站页面秒更新; 28.可自定义...
Spark可以运行在新一代资源管 理框架YARN上,它还可以读取已有的存放在Hadoop上的数据,这是个非常大的优势。 稳定性:由于代码质量问题,Spark长时间运行会经常出错,在架构方面,由于大量数据被缓存在内存中, ...
免费个人博客系统(兼多用户博客系统)是支持一个空间2个网站的全能型网站管理系统,本免费个人博客系统通用和拓展性强,博客、文章系统、商城、企业网站、个性化论坛等类型网站都可以使用,将来网站无论如何转型或...
Orginone以组织用户为中心,利用云原生技术提升应用和数据的管理能力,让组织更专注核心业务的代码和数据,以All-in-one方式降低组织中用户对工作的心智负担。保持平台开放和中立,通过更细颗粒度的划分服务边界,...
本书提出了以理解和运用计算生态为目标的Python语言教学思想,不仅系统讲解了Python语言语法,同时介绍了从数据理解到图像处理的14个Python函数库,向初学Python语言的读者展示了全新的编程语言学习路径。...
looper类,掌握这些类的知识后方能在后续的代码分析中做到游刃有余;第6章以mediaserver为切入点,对android中极为重要的binder进行了较为全面的分析,深刻揭示了其本质。第7章对 audio系统进行了深入的分析,尤其...