也许是一个新手问题,但我不明白为什么当我尝试做Map<String, boolean>
之类的事情时,我的IDE尖叫说“令牌上的语法错误”boolean“,此符号后面的维度”,但是布尔它完美无缺。任何人都可以解释我为什么会那样?在此先感谢!!
答案 0 :(得分:43)
简单地说:Java泛型不适用于基本类型参数,只适用于类。因此,以同样的方式,您无法使用List<int>
,只能使用List<Integer>
。
有关详细信息,请参阅相关的Java Generics FAQ entry。
答案 1 :(得分:27)
使用布尔而不是布尔值。 Map只能包含对象,boolean是基本类型而不是对象。 Boolean是boolean的对象包装器。
答案 2 :(得分:12)
除了其他回复之外,请注意您可以使用Map<String, Boolean>
并使用几乎,就好像它是Map<String, boolean>
一样。也就是说,您将能够put
和get
boolean
s(原始)。查找autoboxing以解释其原因。使用自动装箱存在一些缺陷,但在简单的情况下应该可以使用。