个人理解,泛型相当于
泛型的几个基本使用情况
1,泛型类:
public class test//他的作用便是可以作用于类里面的方法等,比如
{
protected L x;
public L get(){
}
}
2,泛型接口
public interface test2<L,R>
{
public void get(L x,R z);
}
3,泛型方法
public class test2
{
public L get(L y);
public static L put(L y);/在这里可以发现static的函数是后面有 L。的作用是声明他为泛型,而如果一个类已经声明了比如test2,那么她下面的方法get就不需要添加。
而带static的方法不属于这个类,所以就需要再声明一次/
//第一次声明是泛型,第二次声明返回值类型
}
public class test2’{
public L get(L y)
//该函数所在类并没有声明泛型,所以他如static一般也是加了,之后的L表示他的返回值类型
}
4,变量类型
public interface test2<L,R>
{
public void get(L x,R z);
}//如此处的x,z便是
5,类型限定。作用:如果你只想让某个方法接受特定类型的类或者他的子类作为参数
public static <L extends put&get>L hug(L x,L y)
//使用extends关键字,这个限定主要用于类,方法。用关键字extends限顶L的范围。同时如果有需要可以用&来给出多个限定
//若限定有接口也有类,那么类只能有一个,而且放在第一位
例子:
class test3
{
public L min(L x,L y)
{
if(x.compareTo(y)>0)
{
return y;
}
return x;
//这里调用了.compareTo但如果使用的L类型没有这个方法就会报错,所以需要我们做一个限定,将L类型限定在有compareTo的范围内
}
//比如public L min(L x,L y);
}
大概意思
他可以套用不同的量,让这个变量类型不一样,可以是String,可以是类可以是其他。增加共用性。以后就不局限于某个类型了,就可以更方便的继承使用