Java Map不接受“boolean”

时间:2011-07-14 08:38:54

标签: java map

也许是一个新手问题,但我不明白为什么当我尝试做Map<String, boolean>之类的事情时,我的IDE尖叫说“令牌上的语法错误”boolean“,此符号后面的维度”,但是布尔它完美无缺。任何人都可以解释我为什么会那样?在此先感谢!!

3 个答案:

答案 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>一样。也就是说,您将能够putget boolean s(原始)。查找autoboxing以解释其原因。使用自动装箱存在一些缺陷,但在简单的情况下应该可以使用。