1.1 例子
怎么可能这个1.1的代码能编译通过呢?我们最后可能会有一个List> lol和一个List list。
以下是代码片段: 1.2 示例
import java.util.*;
public class LOLUnknowns1 {
static void probablyIllegal(List<List<?>> lol, List<?> list) {
lol.add(list); // this compiles just fine
}
}
怎么可能这个1.1的代码能编译通过呢?我们最后可能会有一个List> lol和一个List list。
以下是代码片段: 1.2 示例
import java.util.*;
public class TwoListsOfUnknowns2 {
static void doSomethingIllegal(List<?> list1, List<?> list2) {
list1.addAll(list2); // DOES NOT COMPILE as expected!!!
}
}
1.1个例子让我困惑,怎么可能顺利编译?
我想知道为什么代码能够在预期无法编译的情况下成功编译,希望了解具体原因。