Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么列表?_Java_Super - Fatal编程技术网

Java 为什么列表?

Java 为什么列表?,java,super,Java,Super,我的代码是: List<? super myclass> test_list = new ArrayList<Object>(); .... myclass m; m = test_list.get(i); 简而言之,对象不是myclass:myclass扩展了对象i.o.w.,对象是myclass的超类 如果你有 List<? extends myclass> test_list = new ArrayList<Object>()

我的代码是:

List<? super myclass> test_list = new ArrayList<Object>();
   ....
  myclass m;
  m = test_list.get(i);

简而言之,对象不是myclass:myclass扩展了对象i.o.w.,对象是myclass的超类

如果你有

List<? extends myclass> test_list = new ArrayList<Object>();
List<Object> test_list = new ArrayList<myclass>();
你会有一个编译失败。如果你有

List<? extends myclass> test_list = new ArrayList<Object>();
List<Object> test_list = new ArrayList<myclass>();
它可以编译,但需要显式转换。你所拥有的是如果你眯着眼睛想:

List<Object> test_list = new ArrayList<Object>(); 

因为List可能比List更一般,所以您已显式声明该List属于某种类型,它是myclass的超类型:


我想你想要List@Taylor:谢谢你,我想这是一件新鲜事
List<? super myclass> test_list = new ArrayList<Object>();
List<? extends myclass> test_list = new ArrayList<myclass>();