普通类、泛型类是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了普通类、泛型类是啥相关的知识,希望对你有一定的参考价值。

如题

“泛型”,在英文版原文里写的是:generic type,直译就是:通用类型。generic这个单词里一点儿“泛”的意思可都没有啊!也不知是哪位大神整出“泛”型这么个概念的?!

MSDN里最能说明它的一段话是这么写的:
From the point of view of reflection, the difference between a generic type and an ordinary type is that a generic type has associated with it a set of type parameters (if it is a generic type definition) or type arguments (if it is a constructed type). A generic method differs from an ordinary method in the same way.

\\ 在MSDN中搜索:.NET Framework 中的泛型

直译过来其实是这样的:
从反射的角度来看,通用类型和普通类型之间的区别是:一个通用类型存在着一个与之关联的类型(组成)的形参集(如果它是通用类型定义的话)或者 类型(组成)的实参集(如果它是构造类型的话)。泛型方法与(采用)同样方式实现的普通方法不同。

\\ 其中的"(组成)"t "(采用)"是为了更便于理解我自己加上去的

说的直白点:
通用类型(generic typy)就是:把已知或未知(自定义和自动转换)的类型当作参数来进行处理的一个类型。

在理解它的相关规定和使用它的时候,我们要充分发挥”面向对象“的思维方式,即:把”类型“(通用类型的参数)也看作一个如同普通变量一般的”对象“去对待就行了。

那么,原则上说,一切适合对”类型“进行操作的事情就可以做,否则就不可以做。

有兴趣的话可以去比对一下相关于所谓”泛型“的规则,看是不是这样。

理解所谓”泛型“(通用类型)的关键点已经说清楚了,更多细节就自行验证吧!
参考技术A 大部分类都是普通类(比如自定义的Person,Animal),有些类一般是数据结构类或者工具类)可以适应于多种类型,被称作泛型类。比如List,它可以容纳各种类型的数据,List<string> List<int> List<Person>等等本回答被提问者和网友采纳 参考技术B 好像没什么区别吧

泛型类的成员方法如果是泛型方法,且泛型方法接受与包含类相同的类型参数T,编译器将生成警告CS0693,因为在方法范围内,为内部T提供的参数将隐藏为外部T提供的参数。

别的就没想到了。。。

以上是关于普通类、泛型类是啥的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中的泛型类是啥东西?

从非泛型类调用抽象泛型类中定义的方法的最佳方法是啥

201671010114 2016-2017-2 《Java程序设计》第十周学习总结

Java泛型类

Java泛型类

java 泛型类的定义