Java泛型学习笔记

今天突然想到了泛型,于是温习了一下,所以在此做了记录,只是提醒自己。

定义泛型的方式:

<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就是反过来。

具体的网上的资料很多,在这里只是提醒一下自己。文采不好就不多写了。

原文地址:https://www.cnblogs.com/andysd/p/3068116.html