您好我尝试在Java中创建一个TreeMap但编译器给出的错误是“意外类型”。 谁能告诉我为什么?在Map中不可能有原始数据类型吗?
我确实通过使用java.lang.Boolean来解决它。但我不明白为什么我不能将复杂的数据类型与原始数据类型混合在一起。
答案 0 :(得分:6)
要回答您的问题,
地图和其他被视为集合的类不仅用于存储数据,还提供比较方法。在java比较器中使用相同的。简而言之,您需要在要比较的对象上调用方法。如果值是原始数据类型,则不能对它们调用任何方法。这正是集合和相关类中不允许原始数据类型的主要原因之一。
希望这会有所帮助
答案 1 :(得分:1)
地图中是否有原始数据类型?
不,不是。试试<String, Boolean>
。
答案 2 :(得分:1)
但我不明白为什么我不能将复杂的数据类型与原始数据类型混合在一起。
这不是将复杂数据类型与原始类型混合在一起。
原因是Java Collection Framework中的所有类都不是为支持基本类型而设计的。
如果需要在集合框架中使用任何基本类型,则必须使用相应的包装类。例如Integer
的{{1}} ...
只有数组支持基本类型。
答案 3 :(得分:0)
地图中是否有原始数据类型?
没有。你不能在Java泛型中使用原始类型。