转载:http://www.2cto.com/kf/201211/169210.html
1.泛型概念
泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。可以在集合框架(Collection framework)中看到泛型的动机。
2.泛型简单使用
class Name<H>{
public void getClassName(H c){
System.out.println(c.getClass().getName());
}
}
@org.junit.Test
public void testGeneric(){
//自定义泛型
new Name<String>().getClassName("2");
//使用泛型
Map<String, String> map1=new HashMap<String, String>();
map1.put("1", "1");
map1.put("2", "2");
String s1=map1.get("1");
//未使用泛型
Map map2=new HashMap();
map2.put("1", "1");
map2.put("1", "1");
String s2=(String) map2.get("1");
//编译器自动识别
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(2);
List<?> l=list;
System.out.println(l.size());//2
}
3.泛型好处
消除强制类型转换。 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。
分享到:
相关推荐
浅析Java泛型的使用.pdf
上篇文章给大家介绍了浅析C# 中的类型系统(值类型和引用类型),接下来通过本文给大家介绍下c# 泛型类型, 说下C#中的泛型,熟练地使用泛型能提高代码的重用性,使用我们代码瞬间就高大上了,当然只有一点点,真的...
在使用泛型定义类的过程中遇到了不少问题,特记录如下,需要的朋友可以参考下
在API上做了很多的调整,已经删除了很多之前废弃的方法以及类,并支持了很多Java5 的新特性:包括泛型、可变参数、枚举和autoboxing等。 因此,此版本和2.x版本不能兼容,如要使用3.0版本,最好是在新项目中去使用,...
下面介绍下这两个特殊的关键字:一、Where关键字where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量。1.接口约束。例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T 就可以...
本文实例讲述了C#事件用法。分享给大家供大家参考。...第二个参数是T类型(即泛型),定义了一个T的约束,它必须派生自基类EventArgs CardInfoEventArgs 就派生自基类EventArgs 举例 #region 测试事件1 //EventA
主要介绍了C# 9.0 新特性之 Lambda 弃元参数的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,想学习c#的朋友可以了解下
Variant库包含一个不同于union的泛型类,用于在存储和操作来自于不同类型的对象。这个库的一个特点是支持类型安全的访问,减少了不同数据类型的类型转换代码的共同问题。 Variant 库如何改进你的程序? •对用户...
ASP.NET 2.0 异步页面原理浅析 [1] [原] 自定义通用System.Web.UI.IHierarchicalDataSource简单实现 在 ASP.NET 2.0 中创建 Web 应用程序主题 ASP.NET 2.0 中的数据访问 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格...