package fanxing;
import java.util.ArrayList;
import java.util.List;
public class tongpei {
public static void main(String args[])
{
hehe1 x=new hehe1();
hehe2 y=new hehe2();
ArrayList<String> list=new ArrayList<String>();
//x.paint1(l); 你以为List<String>是List<Object>的子类么 ,,你错了,,,哈哈 ,,怎么使用呢 通配符吧可以匹配任何类型
y.paint1(list);
}
}
class hehe1
{
public void paint(List c)//没有泛型声明就会引起警告
{
}
public void paint1(List<Object>l)
{
}
}
class hehe2
{
public void paint1(List<?>l)//使用通配符可以匹配任何类型的
{
//l.add(new Object()); 可是不能加入元素这个是为什么啊 引起编译错误
/*
* 因为都类型参数说明实际上但是一个问题就是 我不知道他是什么类型的 实际上表示是有类型参数要求的
*怎么办 不能加入 唯一能加入的就是null了 呵呵他才是通用的呢
*/
//但是却可以返回 原来不论如何他都是object类的
}
}
java 泛型通配符 直接源码
最新推荐文章于 2022-10-24 01:31:08 发布