为什么要有泛型
所谓泛型,就是类型参数化,也就是说,数据的类型不是固定的String,Integer,而是作为参数传入的。比如:
// String就是参数,是List构造函数的参数。
List<String> list = new ArrayList<>();
我们来看个更简单的例子: 现在有个需求,需要一个类,可以将任意String前面加上"Hello",后面加上"Android",然后能返回内容本身。我们实现如下:
public class WrapperString {
private String content;
public WrapperString(String content) {
this.content = content;
}
// 前缀加Hello
public String prefixHello() {
return "Hello" + content;
}
// 后缀加Android
public String suffixAndroid() {
return content + "Android";
}
// 获取内容本身
public String getContent(){
return content;
}
}
突然,有一天,需要Integer也要实现,那么我们需要一个变量既能保存String,又能保存Integer,我们所知道的,只有Object了,于是我们修改代码:
public class WrapperObject { // 这里改一下名字
private Object content;
public WrapperObject(Object content) {
this.content = content;
}
// 前缀加Hello
public String prefixHello() {
return "Hello" + content;
}
// 后缀加Android
public String suffixAndroid() {
return content + "Android";
}
// 获取内容本身
public Object getContent() {
return content;
}
}
然后我们看下使用:
public void test() {
String str = "test";
WrapperObject wrapper = new WrapperObject(str);
Object obj = wrapper.getContent();
// 获取长度,需要强转,mmp
int length = ((String) obj).length();
// 既然强转,那么随便转&#