gpt4 book ai didi

java - 泛型 java 中的逆变不能按预期工作

转载 作者:行者123 更新时间:2023-12-01 17:54:17 30 4
gpt4 key购买 nike

   List<? super Number> myNumsContra = new ArrayList<Number>();
myNumsContra.add(2.0F);
myNumsContra.add(2);
myNumsContra.add(2L);

System.out.println(myNumsContra.get(0)); //should throw error

根据泛型的逆变规则,上面的 get(0) 调用应该抛出编译错误。但我不认为这种情况会发生。有什么我错过的吗?我正在使用 Java-8

最佳答案

没有编译时错误,因为 println 可以接受任何 Object (这甚​​至是 ? 也保证兼容)与)。

您要查找的错误是

Number x = myNumsContra.get(0);
// does not compile, because we cannot know this is really a `Number`.

关于java - 泛型 java 中的逆变不能按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46580251/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com