码迷,mamicode.com
首页 > 编程语言 > 详细

java泛型

时间:2014-12-01 12:50:56      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   使用   sp   java   on   

泛型:JDK1.5版本以后出现新特性,用于解决安全问题,是一个安全机制.

升级3部 高效 简化书写 安全

好处:

1将运行时期出现问题ClassCastException类型转换异常,转移到了编译时期.方便程序员解决问题,让运行事情问题减少,安全.

2.避免了强制转换麻烦.

在使用java提供的对象时,什么时候写泛型呢?

通常在集合框架中很常见,只要见到<>就要定义泛型.

其实<>就是用来接收类型的.

什么时候定义泛型类?

 

当类中要操作的引用数据类型不确定的时候.


为了让不同方法可以操作不同类型,而且类型还部确定

那么可以将泛型在方法上

特殊之处:

静态方法不可以访问类上定义的泛型.

如果静态方法操作的应用数据类型不确定.可以将泛型定义在方法上.

泛型的位置也有将就

Public static <QQ> getfanxing(){} 位置错了也会报错.

可以既有泛型类,也有泛型方法

 

泛型定义在方法上事例

package pack;

import java.util.ArrayList;
import java.util.Collection;

public class Demo{
	public static void main(String[] args) {
		
	}
	
	//泛型定义在方法上,返回值和参数都是泛型
	public static <T> T show(ArrayList<T> al){
		
		return null;
	}
	
	//泛型定义在方法上,
	public static <T> void show(Collection<T> al){
		
	}
}

  

泛型定义在类上事例

package pack;

import java.util.ArrayList;
import java.util.Collection;

public class Demo<T>{
	T a;
	
	
}

class Gen<T>{
	T a;
	public Gen(T obj){
		
	}
	
	public void Get(T t){
		
	}
	
	public T getObj(){
		return null;
	}
}

  

 

泛型的限定:

 

? 通配符,也可理解为占位符

 

泛型的限定:

 

? extends E:可以接收E类型或者E的子类型.上限. 既能接收也能接收E的子类型 

 

?super E:可以接收E类型或者E的父类型.下限.

 

 

 

?	通配符,也可理解为占位符
泛型的限定:
public static void printToll(ArrayList<?> al)    //泛型通配符.?
{
    Iterator<?> it = al.iterator();
    while(it.hasNext())
    {
        System.out.println(it.next());
    }
}

 

 

 

java泛型

标签:style   blog   io   ar   color   使用   sp   java   on   

原文地址:http://www.cnblogs.com/wikiki/p/4134626.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!