今天突然想到了泛型,于是温习了一下,所以在此做了记录,只是提醒自己。
定义泛型的方式:
<T>,<T extends Object>,<T super List>,<?>,<? extends Object>,<? super String>
基本上也就以上6种了吧,这里说说"T"和"?"区别,T是代表具体的类型,一旦定义之后不能被相互转换,?是通配类型,可以被相互转换,是不是有点不好理解?好吧举个例子:
public class User1<T>{...}
public class User2<?>{...}
这个是定义了两个类,
User1<String> u1 = new User1<String>();
User1<Object> u2 = new User2<String>();
User2<String> u3 = new User2<String>();
User2<Object> u4 = new User2<Object>();
u1 = u2;就会报错
u3 = u4;就不会报错
还有关于extends和super就是限制T中的具体类的要求,extends就是代表T的具体类一定是后面的子类或者本身或者实现了后面的接口,super就是反过来。
具体的网上的资料很多,在这里只是提醒一下自己。文采不好就不多写了。