java7简化变参方法是什么-创新互联

本篇内容主要讲解“java7简化变参方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java7简化变参方法是什么”吧!

10余年的绥棱网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整绥棱建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“绥棱网站设计”,“绥棱网站推广”以来,每个客户项目都认真落实执行。

这是所有修改里最简单的一个,只是去掉了方法签名中同时出现变参和泛型时才会出现的类型警告信息。

public static Collection doSomething(T... entries) { ...}

还在?很好。这到底是怎么回事?

变参方法是指参数列表末尾是数量不定但类型相同的参数方法。但你可能还不知道变参方法是如何实现的。基本上,所有出现在末尾的变参都会被放到一个数组中(由编译器自动创建),并作为一个参数传入。

这是个好主意,但是存在一个公认的Java泛型缺陷——不允许创建已知类型的泛型数组。比如下面这段代码,编译就无法通过:

HashMap[] arrayHm = new HashMap<>[2];

不可以创建特定泛型的数组,只能这样写:

HashMap[] warnHm = new HashMap[2];

可这样编译器会给出一个只能忽略的警告。你可以将warnHm的类型定义为HashMap数组,但不能创建这个类型的实例,所以你不得不硬着头皮(或至少忘掉警告)硬生生地把原始类型(HashMap数组)的实例塞给warnHm。

这两个特性(编译时生成数组的变参方法和已知泛型数组不能是可实例化类型)碰到一起时,会令人有点头疼。看看下面这段代码:

HashMap hm1 = new HashMap<>();HashMap hm2 = new HashMapCollection> coll = doSomething(hm1,hm2);

编译器会尝试创建一个包含hm1和hm2的数组,但这种类型的数组应该是被严格禁止使用的。面对这种进退两难的局面,编译器只好违心地创建一个本来不应出现的泛型数组实例,但它又觉得自己不能保持沉默,所以还得嘟囔着警告你这是“未经检查或不安全的操作”。

从类型系统的角度看,这非常合理。但可怜的开发人员本想使用一个十分靠谱的API,一看到这些吓人的警告,却得不到任何解释,不免会内心忐忑。

到此,相信大家对“java7简化变参方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是创新互联建站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


名称栏目:java7简化变参方法是什么-创新互联
标题网址:http://scyanting.com/article/dsjips.html