A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zxbzxb333 中级黑马   /  2014-11-3 22:43  /  1152 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zxbzxb333 于 2014-11-4 16:59 编辑

觉得每次都要加那个<>好麻烦啊,而且不加泛型也能运行啊,只要注意点类型别搞错了就行,加了这个泛型没提高多少安全性感觉效率却低了不少!

13 个回复

倒序浏览
也不全是吧,最起码没有那个刺眼的黄色的感叹号了啊!!!
回复 使用道具 举报
也不全是吧,最起码没有那个刺眼的黄色的感叹号了啊!!!
回复 使用道具 举报
lighter 发表于 2014-11-4 00:37
也不全是吧,最起码没有那个刺眼的黄色的感叹号了啊!!!

那岂不是为了泛型而泛型么?
回复 使用道具 举报
还没有见到答的用处了
回复 使用道具 举报
加泛型,我感觉提高了运行效率了,
回复 使用道具 举报
泛型提高了安全性啊,当然有得必有失,有好处的同时必然会带来弊端。能简写的都是有前提的。
回复 使用道具 举报
huoxy 中级黑马 2014-11-4 16:20:28
8#
有利有弊,看你注重哪一方面了。
回复 使用道具 举报
第一:源代码保护。(如果你知道C++模板对泛型的实现机制,就会知道C++在编译的时候根据对泛型的调用,自动“内联”了一个实现,这样泛型的内容就暴露了,尔DotNet的实现方式就不同了,泛型类和方法会被编译成IL,在执行的时候由JIT负责将IL变化为指定类型参数的本地代码,从而保护了源代码)
第二:类型安全。(这点是最显而易见的,抛弃了使用ArrayList时各种丑陋的强制类型转换)


第三:更清晰地代码。因为没有了强制类型转换,所以代码自然显得更清晰,但是使用泛型时候带来的<>有时候确实也会让人搞糊涂,幸好泛型方法可以用类型推断或者using语句来进一步简化写法。


第四:更好的性能,因为值类型可以避免装箱和拆箱所带来的损耗(垃圾回收的次数也会减少)。(这点正是泛型神奇的地方,开发历史上抽象能力的上升往往意味着性能的下降,但是泛型却不是!泛型抽象了算法,但是C++和DotNet对泛型的实现能够让性能无损,并且更快。
回复 使用道具 举报 1 0
呃,泛型还是有好处的,泛型又不会带到运行期,编译期可能会降低开发效率,但是安全性和出bug的概率的优化就是对开发最大的效率提升!
回复 使用道具 举报
泛型的出现本身就是为了类型安全,为了安全牺牲点效率有什么。
回复 使用道具 举报
把异常从运行时期转移到编译时期,提高了安全性
回复 使用道具 举报
初学写的代码都是小demo,为了理解知识点的,实际开发是相当复杂的,老师说泛型好处大大滴
回复 使用道具 举报
本帖最后由 cs8630323 于 2014-11-7 18:26 编辑

养成坏习惯后果自负
以后项目N个集合,你能记住哪个集合要保存哪个类型?别人看你的代码肯定抓狂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马