Java 为什么这个使用泛型的HashMap声明是错误的? HashMap
为什么你认为它应该?对于任何可能不相等的Java 为什么这个使用泛型的HashMap声明是错误的? HashMap,java,generics,serialization,arraylist,hashmap,Java,Generics,Serialization,Arraylist,Hashmap,为什么你认为它应该?对于任何可能不相等的Apple和Orange,只要Apple和Orange都不是通配符类型,就决不能从HashMap分配HashMap 和ArrayList> 你可能的意思是: ArrayList<? extends Serializable> c = new ArrayList<ArrayList<String>>(); HashMap 及 ?扩展ArrayList> 你为什么认为应该这样做?对于任何可能不相等的Apple和Orang
Apple
和Orange
,只要Apple
和Orange
都不是通配符类型,就决不能从HashMap
分配HashMap
和ArrayList>
你可能的意思是:
ArrayList<? extends Serializable> c = new ArrayList<ArrayList<String>>();
HashMap
及
?扩展ArrayList>
你为什么认为应该这样做?对于任何可能不相等的Apple
和Orange
,只要Apple
和Orange
都不是通配符类型,就决不能从HashMap
分配HashMap
和ArrayList>
你可能的意思是:
ArrayList<? extends Serializable> c = new ArrayList<ArrayList<String>>();
HashMap
及
?扩展ArrayList>
也许ArrayList
不扩展Serializable
?密切相关:A
扩展(或实现)B
并不意味着HashMap
扩展HashMap
。毕竟,HashMap
是可以放入B
的东西,但是HashMap
不是。以前也有人问过类似的问题。也许ArrayList
没有扩展Serializable
?这与A
扩展(或实现)B
这一事实密切相关,但这并不意味着HashMap
扩展了HashMap
。毕竟,HashMap
是可以放入B
的东西,但是HashMap
不是。以前也有人问过类似的问题。谢谢,我接受了你的建议,现在确实有效了。谢谢,我接受了你的建议,现在确实有效了。
HashMap<String, ? extends ArrayList<? extends Serializable>> map =
new HashMap<String, ArrayList<ArrayList>>();
? extends Serializable // can be assigned from
ArrayList<?>
? extends ArrayList<? extends Serializable> // can be assigned from
ArrayList< ArrayList<?>>