1.泛型类
什么时候定义泛型类?
当类中要操作的引用数据类型不确定的时候,早期定义Object来完成扩展,而现在用泛型类。
定义泛型类之前:
class Worker
{}
class Tool
{
private object obj;
public void set(Object obj)
{
this.obj = obj;
}
public Object get()
{
return obj;
}
}
class Demo
{
public static void main(String[] args)
{
Tool t = new Tool();
t.set(new Worker());
Worker w = (Worker)t.get();
}
}
定义泛型类之后:
class Worker
{}
class Tool<tool>
{
private tool t;
public void set(tool t)
{
this.t = t;
}
public tool get()
{
return t;
}
}
class Demo
{
public static vod main(String[] args)
{
Tool<Worker> t = new Tool<Worker>();
t.set(new Worker());
Worker w = t.get();
}
}
2.泛型方法
泛型类定义的泛型,在整个类中有效,如果被方法使用,那么泛型类的对象就会明确要操作
的数据的类型,类型就固定了。为了让不同方法可以操作不同的不确定的数据类型,可以使
用泛型方法。
如:
class Tool
{
public <T> void show(T t)
{
System.out.println(t);
}
public <Q> void show2(Q q)
{
System.out.println(q);
}
}
class Demo
{
public static void main(String[] args)
{
Tool tool = new Tool();
//这里可以放入不同类型的形参。
tool.show("hhhh");
tool.show(4);
//可以放入不同类型的形参。
tool.show2("eeee");
tool.show2(5);
}
}
注意:对于静态方法,静态方法的访问类型不能是定义在类上的泛型。如果静态方法需要泛
型,可以单独在静态方法上定义新的泛型。
|
|