java -- 初识泛型

泛型是JDK1.5版本新出的内容, 它在一定程度上保证了程序的安全性, 

泛型简单的说就是在 容器(比如集合)后面指定该容器存放的内容的类型。

ArrayList<String> al = new ArrayList<String>();
		al.add(4);
该代码是错误的, 因为ArrayList 后面的<String>指定了该集合存放的是String类型的数据, 但是 后面添加的是Integer类型。所以错误(参数不匹配)。


泛型类:

泛型类就是使用该类的对象可以变化。

比如 我定义了一个学生对象, 定义了一个Tool类用来操作学生对象; 然后我又定义了一个老师类, 定义一个Tool类来操作老师对象,  这样下去 我每次定义一个对象就要定义一个Tool类来操作该对象, 这样就很烦, 所以可以将Tool类定义为 泛型类, 这样无论是什么对象 都可以通过这个Tool类来操作。

import java.util.*;
class  GenericClassDemo
{
	public static void main(String[] args) 
	{
		Tools<Worker> u = new Tools<Worker>();

		u.setObject(new Worker());
		Worker w = u.getObject();
	}
}
// 这种方式比定义参数为Object类更加常见, 更好
class Tools<Q>
{
	private Q q;
	public void setObject(Q q)
	{
		this.q = q;
	}
	public Q getObject()
	{
		return q;
	}
}

class Worker
{
}
class Student
{
}
泛型方法:

泛型类定义的泛型在整个类中有效,如果方法被使用,那么泛型类的对象明确要操作具体类型之后, 所有要操作的类型就已经固定了。
为了让不同的方法可以操作不同的类型, 而且类型不确定, 就可以定义泛型方法。

泛型方法的定义; 就是在该方法的返回值前面(修饰符后面)加上该方法的参数类型。

public <T> void show(T t)	// 注意这个泛型<T>的有效区域只有这个方法之中, 
	{
		System.out.println("show:"+t);
	}

其实泛型方法也就是都可以改变方法的 参数类型。

泛型方法的类型可以与泛型类的类型不一致。

注意一点: 静态方法的泛型不能与类的泛型一致。 因为静态比类先加载。

如果静态方法操作的引用数据类型不确定, 可以定义一个与类泛型不同的静态泛型方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值