`
TechBirds
  • 浏览: 82511 次
文章分类
社区版块
存档分类
最新评论

泛型浅析

 
阅读更多

转载: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

    浅析Java泛型的使用.pdf

    深入浅析C#泛型类型

    上篇文章给大家介绍了浅析C# 中的类型系统(值类型和引用类型),接下来通过本文给大家介绍下c# 泛型类型, 说下C#中的泛型,熟练地使用泛型能提高代码的重用性,使用我们代码瞬间就高大上了,当然只有一点点,真的...

    浅析泛型类接口定义

    在使用泛型定义类的过程中遇到了不少问题,特记录如下,需要的朋友可以参考下

    Lucene3.0浅析

    在API上做了很多的调整,已经删除了很多之前废弃的方法以及类,并支持了很多Java5 的新特性:包括泛型、可变参数、枚举和autoboxing等。 因此,此版本和2.x版本不能兼容,如要使用3.0版本,最好是在新项目中去使用,...

    浅析c#范型中的特殊关键字where default

    下面介绍下这两个特殊的关键字:一、Where关键字where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量。1.接口约束。例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T 就可以...

    C#事件用法实例浅析

    本文实例讲述了C#事件用法。分享给大家供大家参考。...第二个参数是T类型(即泛型),定义了一个T的约束,它必须派生自基类EventArgs CardInfoEventArgs 就派生自基类EventArgs 举例 #region 测试事件1 //EventA

    浅析C# 9.0 新特性之 Lambda 弃元参数

    主要介绍了C# 9.0 新特性之 Lambda 弃元参数的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,想学习c#的朋友可以了解下

    浅析C++中boost.variant的几种访问方法

    Variant库包含一个不同于union的泛型类,用于在存储和操作来自于不同类型的对象。这个库的一个特点是支持类型安全的访问,减少了不同数据类型的类型转换代码的共同问题。 Variant 库如何改进你的程序?  •对用户...

    asp.net知识库

    ASP.NET 2.0 异步页面原理浅析 [1] [原] 自定义通用System.Web.UI.IHierarchicalDataSource简单实现 在 ASP.NET 2.0 中创建 Web 应用程序主题 ASP.NET 2.0 中的数据访问 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格...

Global site tag (gtag.js) - Google Analytics