为什么第二个示例编译成功

开发商MariusŽilėnas
import java.util.*;    

class Test
{
    public static class Base
    {           
    }

    public static class Derived1
        extends Base
    {               
    }

    public static class Derived2
        extends Base
    {               
    }

    public static void main (String[] args)
    {
        //Example1.
        List<? extends Base> e = new ArrayList<Base>();
        e.add(new Derived1()); //this won't compile

        //Example2.
        List<? super Base> b = new ArrayList<Base>();
        b.add(new Derived1()); //this compiles
    }
}
他们是

List<? super Base> b可以分配为List<Base>List<Object>一个Derived1实例可以被添加到两个,这样b.add(new Derived1())的语句将汇编。

另一方面,List<? extends Base> e可能会为其分配一个List<Derived2>,因此编译器不允许向其添加Derived1实例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么编译器跳过第二个scanf循环?

来自分类Dev

为什么在接口案例1抛出编译时错误,但在案例2个编译成功

来自分类Dev

为什么第二个printf打印0

来自分类Dev

为什么第二个for循环不执行?

来自分类Dev

为什么第二个for循环未运行?

来自分类Dev

为什么第二个for循环不执行?

来自分类Dev

为什么不评估第二个ifelse?

来自分类Dev

为什么它适用第二个参数?

来自分类Dev

为什么在我的第二个示例中DateTime :: createFromFormat()失败并返回布尔值?

来自分类Dev

为什么编译器调用的是第一个重载函数而不是第二个?

来自分类Dev

为什么从 Class[String] 到 Class[Any] 的类型转换编译成功?

来自分类Dev

为什么编译成功后执行c程序没有输出?

来自分类Dev

为什么vue在第一个编译中无法识别TS语法,但在第二个编译中可以正常工作?

来自分类Dev

为什么第二个导航移至第一个导航

来自分类Dev

为什么要比第一个仪器评估第二个仪器?

来自分类Dev

为什么一个值改变但第二个值没有改变?

来自分类Dev

为什么第一个验证不检查第二个?

来自分类Dev

为什么Java的编译成汇编两次?

来自分类Dev

为什么我没有成功地在第二个代码部分中嵌入“if”来完成它的工作?

来自分类Dev

为什么第二个呼叫不能批量工作?

来自分类Dev

两节点DSE火花群集错误设置了第二个节点。为什么?

来自分类Dev

在std :: exchange中,为什么第二个模板参数默认?

来自分类Dev

为什么第二个:nth-child选择器优先?

来自分类Dev

glBufferData第二个arg是GLsizeiptr而不是GLsizei,为什么?

来自分类Dev

为什么socket.io用不同的路径创建第二个“ sid” cookie?

来自分类Dev

为什么我们需要第二个std :: forward专业化?

来自分类Dev

为什么容器中的第二个div没有显示?

来自分类Dev

为什么在Laravel中在href上传递第二个变量非常灵活?

来自分类Dev

为什么J2EE名称中第二个?

Related 相关文章

  1. 1

    为什么编译器跳过第二个scanf循环?

  2. 2

    为什么在接口案例1抛出编译时错误,但在案例2个编译成功

  3. 3

    为什么第二个printf打印0

  4. 4

    为什么第二个for循环不执行?

  5. 5

    为什么第二个for循环未运行?

  6. 6

    为什么第二个for循环不执行?

  7. 7

    为什么不评估第二个ifelse?

  8. 8

    为什么它适用第二个参数?

  9. 9

    为什么在我的第二个示例中DateTime :: createFromFormat()失败并返回布尔值?

  10. 10

    为什么编译器调用的是第一个重载函数而不是第二个?

  11. 11

    为什么从 Class[String] 到 Class[Any] 的类型转换编译成功?

  12. 12

    为什么编译成功后执行c程序没有输出?

  13. 13

    为什么vue在第一个编译中无法识别TS语法,但在第二个编译中可以正常工作?

  14. 14

    为什么第二个导航移至第一个导航

  15. 15

    为什么要比第一个仪器评估第二个仪器?

  16. 16

    为什么一个值改变但第二个值没有改变?

  17. 17

    为什么第一个验证不检查第二个?

  18. 18

    为什么Java的编译成汇编两次?

  19. 19

    为什么我没有成功地在第二个代码部分中嵌入“if”来完成它的工作?

  20. 20

    为什么第二个呼叫不能批量工作?

  21. 21

    两节点DSE火花群集错误设置了第二个节点。为什么?

  22. 22

    在std :: exchange中,为什么第二个模板参数默认?

  23. 23

    为什么第二个:nth-child选择器优先?

  24. 24

    glBufferData第二个arg是GLsizeiptr而不是GLsizei,为什么?

  25. 25

    为什么socket.io用不同的路径创建第二个“ sid” cookie?

  26. 26

    为什么我们需要第二个std :: forward专业化?

  27. 27

    为什么容器中的第二个div没有显示?

  28. 28

    为什么在Laravel中在href上传递第二个变量非常灵活?

  29. 29

    为什么J2EE名称中第二个?

热门标签

归档