在Java泛型,如果鍵入Java泛型和鑄造
List<Object> l = new ArrayList<>();
List<String> l2 = l; //no casting works here
它不會編譯,報告不可兌換類型List<Object> to List<String>
。但是:
List<? extends Object> l = new ArrayList<>();
List<String> l2 = (List<String>) l;
List<String> l3 = (List<String>) l;
沒有工作。爲什麼會這樣?