泛型类型参数

摘要:
在泛型类型或泛型方法的定义中,类型参数是占位符,通常是大写字母,如T。泛型类(如泛型概述中给出的MyList<T>类)不能按原样使用,因为它不是真正的类型,而是类型的蓝图。要使用MyList<T>,客户代码必须在尖括号中指定一个类型参数,以声明和实例化构造的类型。您可以创建任意数量的构造类型实例,每个实例使用不同的类型参数,如下所示:MyList<MyClass>list1=newMyList<MyClass>();MyList<float>list2=newMyList<float>();MyList<SomeStruct>list3=newMyList<SomeStruct˃();在MyList<T>的这些实例中,类中的每个T都将在运行时被一个类型参数替换。

在泛型类型或泛型方法的定义中,类型参数是一个占位符(placeholder),通常为一个大写字母,如T。在客户代码声明、实例化该类型的变量时,把T替换为客户代码所指定的数据类型。泛型类,如泛型概述中给出的MyList<T>类,不能用作as-is,原因在于它不是一个真正的类型,而更像是一个类型的蓝图。要使用MyList<T>,客户代码必须在尖括号内指定一个类型参数,来声明并实例化一个已构造类型(constructed type)。这个特定类的类型参数可以是编译器识别的任何类型。可以创建任意数量的已构造类型实例,每个使用不同的类型参数,如下:

MyList<MyClass> list1  = new MyList<MyClass>();
MyList<float> list2 = new MyList<float>();
MyList<SomeStruct> list3 = new MyList<SomeStruct>();

在这些MyList<T>的实例中,类中出现的每个T都将在运行的时候被类型参数所取代。依靠这样的替换,我们仅用定义类的代码,就创建了三个独立的类型安全且高效的对象。有关CLR执行替换的详细信息,请参见运行时中的泛型。

免责声明:文章转载自《泛型类型参数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Win10专业版激活方法(亲测可用)漏洞分析之CVE-2018-0802下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

9本Java程序员必读的书

本文列出的9本书在Java程序员界都是被认为很棒的书。当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java。这个问题也就表明,相对于其他的教程和博客,Java书籍还是很重要的参考,主要表现在以下两点 ●通常书籍是由比较权威的程序员来撰写的。 ●相比其他媒介,书籍对于内容的描述更加详细,解释更加明确。 本文列出的九本...

泛型(generic)的基本使用

package com.day15.generic;/* * 泛型的好处: * 1.提高安全性(将运行期的错误转换到编译期) * 2.省去强转的麻烦 * 泛型的使用: * <>中放的必须是引用数据类型 * 泛型最好不要定义成Object类型,因为没有意义 */ import java.util.ArrayList;import java.uti...

C#集合类型大盘点

C#集体类型( Collections in C#)   集合是.NET FCL(Framework Class Library)中很重要的一部分,也是我们开发当中最常用到的功能之一,几乎是无处不在。俗话说知其然,知其所以然,平常看到IEnumerable,IEnumerator,ICollection是不是知道他们之间各自的区别?除了List和Dicti...

[Java 学习笔记] 泛型

目录 泛型的向上转型 将静态方法的泛型类型和实例类型的泛型类型区分开 多泛型类 java可以创建泛型数组(待完善) Java实现泛型的方法——擦拭法 由此,Java泛型的局限也体现出来 泛型继承(loading) 通配符(loading) 泛型与反射(loading) 总结自廖雪峰老师的Java教程: Java教程 - 廖雪峰的官方网站 (liaoxue...

Unity3D游戏轻量级xlua热修复框架

一  这是什么东西 前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察xlua和tolua,最终选择了xlua,很大部分原因是因为项目已经到了后期,线上版本迭代了好几次,所以引入Lua的目的不是为了开发新版本模块。xlua在我们的这种情况下很是适用,如xlua作者所说,用C#开发,用lua热更,xlua这套框架为...

Java 泛型小结

1、什么是泛型?   泛型(Generics )是把类型参数化,运用于类、接口、方法中,可以通过执行泛型类型调用 分配一个类型,将用分配的具体类型替换泛型类型。然后,所分配的类型将用于限制容器内使用的值,这样就无需进行类型转换,还可以在编译时提供更强的类型检查。    2、泛型有什么用?   泛型主要有两个好处:   (1)消除显示的强制类型转换,提高代...