【发布时间】:2018-12-08 08:01:46
【问题描述】:
我有这个:
List<String> list = new ArrayList<>();
list.add("ok");
list.add("123");
List<?> list1 = list; // What is the point of disallow modify?
list1.add("xyz");//compile error
List list2 = list;
list2.add(123);//runtime exception
奇怪的是:
List<?> list1 = list; // What is the point of disallow modify?
list1.add("xyz");//compile error
为什么它不允许我写一个即使类型匹配的元素?我想“list1”是只读的,没有写权限?
如何理解这个编译错误?非常感谢。
【问题讨论】:
-
您根本不应该使用原始类型。它们只是为了向后兼容。
标签: java list generics wildcard add