mca*_*ner 0 java collections generic-collections
我有三行代码:
1) List<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
这不会产生任何错误,
但是当我编写以下代码行时
2)Map<String, List<String>> map = new HashMap<String, ArrayList<String>>();
Run Code Online (Sandbox Code Playgroud)
我得到以下错误
类型不匹配:无法转换HashMap<String,ArrayList<String>> to Map<String,List<String>>
3)Map<String,String> d= new HashMap<String,String>();
Run Code Online (Sandbox Code Playgroud)
此行不会产生任何错误
我想知道为什么
(2)行显示我错误.提前致谢.:)
这是一个非正式的答案.使用此代码:
Map<String, List<String>> map = new HashMap<String, ArrayList<String>>();
Run Code Online (Sandbox Code Playgroud)
你最终得到map的价值可以是任何List<String>,这意味着你可以这样做:
map.put("test", new LinkedList<String>());
Run Code Online (Sandbox Code Playgroud)
这是不正确的,因为a LinkedList不是ArrayList.Java编译器正努力在编译时提供类型安全性,这就是它产生错误的原因.
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |